Python:多继承时的继承顺序

Posted hancece

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:多继承时的继承顺序相关的知识,希望对你有一定的参考价值。

当一个类继承了多个类时,继承顺序:

1.示例:

class A(object):#python2中的新式类,等同与python3中的class A:
    def say(self):
        print(A)


class B(A):
    # pass
    def say(self):
        print(B)


class C(A):
    pass
    # def say(self):
    #     print(‘c‘)

class D(C, B):
    pass
d=D()
d.say()   
print(D.mro())   #查看继承顺序
# [<class ‘__main__.D‘>, <class ‘__main__.C‘>, <class ‘__main__.B‘>, <class ‘__main__.A‘>, <class ‘object‘>]   #广度优先
#[<class ‘__main__.D‘>, <class ‘__main__.C‘>, <class ‘__main__.A‘>, <class ‘__main__.B‘>, <class ‘object‘>] 深度优先
#python 2 中深度优先
#python3或python2的新式类中广度优先

 

以上是关于Python:多继承时的继承顺序的主要内容,如果未能解决你的问题,请参考以下文章

Python高级语法-多继承MRO相关-多继承顺序(4.5.1)

Python菱形继承的初始化问题和继承顺序

Python自学之乐-多继承顺序问题

super

Python多继承解析顺序的C3线性算法流程解析

多继承顺序