转载(https://www.cnblogs.com/wujiaqing/p/10861026.html)
py2 经典类是按深度优先来继承的,新式类是按广度优先来继承的。
py3 经典类和新式类都是统一按广度优先来继承的。
class AA:
def __init__(self):
print('AA')
class A:
def __init__(self):
print('A')
class B(A):
def __init__(self):
prunt('B')
class C(AA):
def __init__(self):
prunt('C')
class D(B, C):
def __init__(self):
prunt('D')
D 类继承 B、C 类, 从左到右继承;广度优先搜索 (逐层搜索)
如果D类有与父类 B、C相同的方法,实例化D类时,会以D类的方法呈现。(多继承存在相同方法(相同属性)时,从左往右继承,左边的类覆盖右边的类)