龙空技术网

Python面向对象基础知识实力总结,你不可不知的面向对象

西瓜皮儿的皮儿 497

前言:

现时同学们对“python面向对象总结”大概比较关心,咱们都需要学习一些“python面向对象总结”的相关资讯。那么小编也在网上网罗了一些关于“python面向对象总结””的相关资讯,希望我们能喜欢,同学们快快来学习一下吧!

Python编程语言从设计之初就被创始人吉多·范罗苏姆(Guido van Rossum)定义成“面向对象的解释型”计算机程序设计语言。所以在python中声明去定义一个类还是非常方便的。下面我们一起来学习一下在Python语言中面向对象开发的一些基础语法吧,文中小编也为更多的python初学者总结了在学习过程中易混淆的一些面向对象概念。一起看看吧~

面向对象基本语法

# 定义类class 类名(父类名):		类变量 = 值		# 构造方法	def __init__(self,形参1,形参2,…):		self.__属性名1 = 形参1		self.__属性名2 = 形参2	 	def get_属性名(self):		return self.__属性名	def set_属性名(self):		self.__属性名 = 值	@classmethod	def 方法名(cls, 形参1,形参2,…):		方法体	def __str__(self):		return 字符串# 实例化对象名 = 类名()# 取值:对象名.变量名# 赋值:对象名.变量名 = 值# 类方法调用类名.类方法名(实参1,实参2,…)
常用魔术方法__init__:创建对象时为对象初始化成员变量__str__:使用print函数打印输出对象到屏幕时被调用的方法,用于返回对象的规范化字符串表现形式类名.__mro__:查看继承关系__new__:用于定义创建对象时执行的操作,在创建对象时自动运行,类的静态方法__del__:删除对象,在对象断开与最后一个变量之间的引用关系时自动执行对象判等当两个对象对应的引用地址相同时,称这两个对象是同一个对象is:判等操作的结果是True或False==与is区别:
	"==":对内容、数值进行判定	"is":只针对地址进行判定,地址相同即返回True,否则返回False
单例模式控制一个类只能创建出单个实例对象示例代码:
class MusicPlayer(object): # 记录第一个被创建对象的引用 instance = None # 记录是否执行过初始化动作 init_flag = False def __new__(cls, *args, **kwargs): # 1. 判断类属性是否是空对象 if cls.instance is None: # 2. 调用父类的方法,为第一个对象分配空间 cls.instance = super().__new__(cls) # 3. 返回类属性保存的对象引用 return cls.instance def __init__(self): if not MusicPlayer.init_flag: print("初始化音乐播放器") MusicPlayer.init_flag = True self.void = True
面向对象相关概念区分类:一系列事物的统称,同类事物必定具有相同的特征,日常事物的特征根据特性分为状态和行为,对应到类中是变量和方法。类成员:成员变量、成员方法的统称成员变量:用于描述对象的固有状态或属性,也叫公有变量成员方法:用于描述对象的固有行为,也叫实例方法对象:类的具体表现形式,是实际存在的个体,也叫实例(instance)类和对象的关系:一个类可以创建任意个数的对象封装:对受访问保护的成员进行功能开放的控制,达到保护数据不被非法访问的目的类变量:定义在类中,不属于某个具体对象的特征,被所有对象共同使用的特征类方法:定义在类中,不属于某个具体对象的行为,被所有对象共同使用的行为类方法中不允许使用实例变量和实例方法类方法中允许使用类变量和类方法,通过第一个参数cls进行实例方法中允许使用类变量和类方法静态方法:既不访问成员变量,也不访问类变量,定义成静态方法继承:一种类间关系,一个类A从另一个类B获取成员信息,称类A继承自类B。提供成员信息的类称父类(基类),获取成员信息的类称子类(派生类)。子类可以添加父类没有的成员父类私有成员不可被继承多继承:一个类同时继承多个类,称为多继承。class 类名(父类名1,父类名2…)多继承关系中,当多个父类具有同名的成员,子类调时该成员时先调用继承关系中的第一个声明的类的成员。重写:在子类中定义与父类相同名称的成员方法。super().方法名()多态:一个对象具有多种形态,在不同的使用环境中以不同的形态展示其功能,称该对象具有多态特征。多态通常发生在继承关系的基础之上。注意:只访问成员变量的方法,定义成实例方法 只访问类变量的方法,定义类方法 既访问成员变量,也访问类变量的方法,定义成实例方法 既不访问成员变量,也不访问类变量,定义成静态方法初学者常见问题:类方法、实例方法等概念混淆__new__与__init__区别:以建房子做比喻,__new__方法负责开发地皮,打下地基,并将原料存放在工地。而__init__方法负责从工地取材料建造出地皮开发招标书中规定的大楼,__init__负责大楼的细节设计,建造,装修使其可交付给客户

欢迎下方留言评论或转发,后期小编会持续分享技术干货,有兴趣的伙伴可以关注一下哦~

标签: #python面向对象总结