具体解析:https://hanjianwei.com/2013/07/25/python-mro/ 实战:https://blog.csdn.net/wo198711203217/article/details/84097274
简介
- Python 3中的类以及Python 2中的新式类使用C3算法来确定MRO,它是一种类似于广度优先搜索的方法
- Python 2中的旧式类(经典类)使用深度优先搜索来确定MRO。
- 在搞不清楚MRO的情况下,可以使用类的
**mro**方法或__mro__属性来获得类的MRO列表。
补充知识:广度优先和深度优先
深度优先
广度优先
案例
class A:def method(self):print("CommonA")class B(A):passclass C(A):def method(self):print("CommonC")class D(B, C):passprint(D().method())
分析上述类 B 的 MRO
首先画出继承图
利用广度优先:[B,A,object]
