python新式类和旧式类
首先:
Python 2.x中默认都是经典类,只有显式继承了object才是新式类
Python 3.x中默认都是新式类,不必显式的继承object
其次:
------新式类对象可以直接通过__class__属性获取自身类型:type
------继承搜索的顺序发生了改变,经典类多继承属性搜索顺序: 先深入继承树左侧,再返回,开始找右侧;新式类多继承属性搜索顺序: 先水平搜索,然后再向上移动
------新式类增加了__slots__内置属性, 可以把实例属性的种类锁定到__slots__规定的范围之中
------新式类增加了__getattribute__方法
定义新式类的方式:
class A(object): # A是新式类,因为显式继承object
pass
class B(A): # B是新式类,因为B的基类A是新式类
pass
class A(object): #A是新式类,因为显式继承object def __init__(self): pass def save(self): print("This is from A") class B(A): #B是新式类,因为B的基类A是新式类 def __init__(self): pass class C(A): def __init__(self): pass def save(self): print ("This is from C") class D(B,C): def __init__(self): pass fun = D() fun.save() #最后输出 This is from C

浙公网安备 33010602011771号