python__基础 : 多继承中方法的调用顺序 __mro__…

2018-12-02 06:18:22来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

在多继承中,如果一个子类继承了两个平级的父类,而这两个父类有两个相同名字的方法,那么一般先继承谁,调用方法就调用先继承的那个父类的方法.如:

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 算法基于 广度优先遍历.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Django CBV流程及源码分析

下一篇:Python学习之旅(二十一)