# 继承顺序 mro线性顺序表
# 1.子类会优先于父类被检查
# 2.多个父类会根据他们在mro元组中的顺序被检查
# 3.如果对下一个类存在两个合法的选择,就选择第一个父类
class A:
def test(self):
print("A")
class B(A):
def test(self):
print("B")
class C(A):
def test(self):
print("C")
class D(B):
def test(self):
print("D")
class E(C):
def test(self):
print("E")
class F(D,E):
def test(self):
print("F")
f1 = F()
# 如果C不继承A
# (
# <class '__main__.F'>, <class '__main__.D'>,
# <class '__main__.B'>, <class '__main__.A'>,
# <class '__main__.E'>, <class '__main__.C'>, <class 'object'>
# )
# 如果C继承A
# (
# <class '__main__.F'>, <class '__main__.D'>,
# <class '__main__.B'>, <class '__main__.E'>,
# <class '__main__.C'>, <class '__main__.A'>, <class 'object'>
# )
print(F.__mro__)
f1.test()
网友评论