面向对象-继承原理
C3线性算法实现,合并父类的MRO列表
- 子类优先于父类
- 多个父类会根据他们在列表中的顺序被检擦
- 如果对下一个类存在两个合法选择,则选择第一个父类
py2中:
新式类:继承了object类,以及他的子类也称为新式类
经典类:没有继承object类,以及他的子类也称为经典类
py3中:统称为新式类,默认会继承object类
class Foo: pass print(Foo.__bases__)
经典类:MRO查找深度优先,查找循序"一路走到黑",一直查找到object
新式类:MRO查找广度优先,object最后查找。
查看多继承属性查找顺序,只有新式类
class Foo: pass print(Foo.mro())