37,743
社区成员
发帖
与我相关
我的任务
分享
class A1():
pass
class A2():
def who_am_i(self):
print("I am a A2")
class A3():
def who_am_i(self):
print("I am a A3")
class B(A1,A2):
pass
class C(A3):
def who_am_i(self):
print("I am a C")
class D(C,B):
pass
d1 = D()
d1.who_am_i()
print(D.__mro__)
很明显先消D,输出D,
这时C和B都是入度为0节点,消C(取左)之后输出D-C,
这时入度为0的节点有A3和B,消A3(取左)之后输出D-C-A3
这时入度为0的节点只有B了,消B之后之后输出D-C-A3-B
这时入度为0的节点有A1和A2,消A1(取左)之后输出D-C-A3-B-A1
这时入度为0的节点只剩A2,消A2之后输出D-C-A3-B-A1-A2
最后输出MRO为 D-C-A3-B-A1-A2-Object