python--面向对象
经典类:py2.x未自动继承object,需要手动写 继承流程:一条道走到黑(深度优先)
新式类:py3.x自动继承object,不需要手动写 继承流程:顶部最后(广度优先)
面向对象:
封装、继承、多态(python自带,不支持重载,支持重写,没有接口)
特殊类属性:
C.__name__ 类C的名字(字符串)
C.__doc__ 类C的文档字符串
C.__bases__ 类C的所有父类构成的元组
C.__dict__ 类C的属性
C.__module__ 类C定义所在的模块(1.5 版本新增)
C.__class__ 实例C对应的类(仅新式类中)
__init__(self):构造方法,构造器方法
__del__(self):析构方法,解构器方法
__call__(): 对象()
obj = cls(),obj ()
__iter__():
迭代,如果执行for对象时,自动会执行对象的iter()方法,生成器
实例属性:
能够在“运行时”创建实例属性,是 Python 类的优秀特性之一,从 C++或 Java 转过来的人会被小小的震惊一下,因为 C++或 Java 中所有属性在使用前都必须明确定义/声明。
Python 不仅是动态类型,而且在运行时,允许这些对象属性的动态创建。创建这样的属性时,必须谨慎。
一个缺陷是,属性在条件语句中创建,如果该条件语句块并未被执行,属性也就不存在,而在后面的代码中试着去访问这些属性,就会有错误发生。
查看实例的属性:dir(obj)
@staticmethod():
静态方法,将方法装饰成静态方法
@ classmethod():
类方法,内建方法,将方法装饰成类方法(静态方法的特殊)
@property:
将方法伪造成字段
静态字段:
在类里面写,而不是在__init__()方法里面写
执行父类构造方法:
super(当前类,self).init() # 推荐
父类.init(self,xxx) # 不推荐
查找源代码过程:
self.xxx() # 从底层开始找


浙公网安备 33010602011771号