python新式类和经典类的区别

时间:2020-07-11
本文章向大家介绍python新式类和经典类的区别,主要包括python新式类和经典类的区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

父类或者以上有继承的object就是新式类 没有的则是经典类
1,新式类和经典类的区别:
广度优先和深度优先,这主要是在多类继承的时候会使用到,如下多类继承的D类对比:
“新式类”和“经典类”的区分在Python 3之后就已经不存在,在Python 3.x之后的版本,因为所有的类都派生自内置类型object(即使没有显示的继承object类型),即所有的类都是“新式类”。
经典类在加载的时候采用的是深度优先算法,二新式类采用的是广度优先算法:比如
经典类: 搜索顺序是(D,B,A,C)

>>>class A: attr = 1
...
>>> class B(A): pass
...
>>> class C(A): attr = 2
...
>>> class D(B,C): pass
...
>>> x = D()
>>> x.attr
1

新式类继承搜索程序是宽度优先
新式类:搜索顺序是(D,B,C,A)

>>> class A(object): attr = 1
...
>>> class B(A): pass
...
>>> class C(A): attr = 2
...
>>> class D(B,C): pass
...
>>> x = D()
>>> x.attr
2

原文链接

原文地址:https://www.cnblogs.com/linqiaobao/p/13285446.html