Python多重继承 MRO步骤语录。

摘抄来至 《Python学习笔记》

MRO步骤如下:

1. 按"深度优先,从左到右"顺序获取列表

2.移除表中的重复类型,仅保留最后一个。

3.确保子类总在基类前,并确保多继承定义顺序。

上一个继承的父类,有相同的继承的情况。

class Boss:

    def run(self):
        ...

    def __init_subclass__(cls, **kwargs):
        print(cls,'cls')

class A(Boss):
    ...

class B():
    ...

class D1(A,B):
    ...

class D2(Boss):    # 在双方父类继承的情况下,会在BOSS类前进行查寻
    ...

class E(D1, D2):
    ...

print(E.__mro__)

class E1(D2, D1):
    ...
print(E1.__mro__)

  

输出

(<class '__main__.E'>, <class '__main__.D1'>, <class '__main__.A'>, <class '__main__.D2'>, <class '__main__.Boss'>, <class '__main__.B'>, <class 'object'>)
(<class '__main__.E1'>, <class '__main__.D2'>, <class '__main__.D1'>, <class '__main__.A'>, <class '__main__.Boss'>, <class '__main__.B'>, <class 'object'>)

原文地址:https://www.cnblogs.com/sidianok/p/14345638.html