python经典类和新式类

在Python 2及以前的版本中,由任意内置类型派生出的类都属于“新式类”,反之,不由任意内置类型派生出的类,则称之为“经典类”。
在Python 3之后就已经不再区分“新式类”和“经典类”,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类”。
经典类:没有继承object的类
新式类:继承了object的类
区别:
经典类 新式类
经典类多继承属性搜索顺序: 采用深度优先,先深入继承树左侧,再返回,开始找右侧 新式类多继承属性搜索顺序: 采用c3算法,广度优先,先水平搜索,然后再向上移动
经典类不需要。 新式类都是从object继承。
经典类slots 属性没用 新式类增加了slots内置属性, 可以把实例属性的种类锁定到slots规定的范围之中。
新式类增加了getattribute方法

你可能感兴趣的:(python经典类和新式类)