在多继承中,如果一个子类继承了两个平级的父类,而这两个父类有两个相同名字的方法,那么一般先继承谁,调用方法就调用先继承的那个父类的方法.如:
class A: def test(self): print('AAAAA') class B: def test(self): print('BBBBB') class C(A,B): pass c = C() c.test() >>>AAAAA
可以看出,先继承了A,所以输出的是AAAAA.那么由此引出了一个问题,python解释器是如何对方法进行查找排序的,答案 __mro__ 方法 ,这个方法基于C3 算法 C3 算法基于 广度优先遍历.