繼承順序
Python3 :
新式類的查找順序:廣度優先
新式類的繼承:
class A(object): Python2 3 都是了
MRO算法--生成一個列表保存繼承順序表
不找到底部
Python2 中有新式類 和 經典類
Python2 默認的是經典類
經典類的繼承是 深度優先
找到最深的,然后從頭開始找
例子
class A(object): #定義新式類
def test(self):
print('frome A')
class B(A):
def test(self):
print('frome B')
class C(A):
def test(self):
print('frome C')
class D(B):
def test(self):
print('frome D')
class E(C):
def test(self):
print('frome E')
class F(D,E):
def test(self):
print('frome F')
f1=F()
f1.test()
print(F.__mro__)
結果:
(<class 'main.F'>, <class 'main.D'>, <class 'main.B'>, <class 'main.E'>, <class 'main.C'>, <class 'main.A'>, <class 'object'>)