Python多重继承和MRO

时间:2017-01-24 10:26:34

标签: python python-3.x inheritance method-resolution-order

我目前正在攻读python考试,但我还不了解Python 3中的MRO和线性化。

class F: pass 
class G: pass 
class H: pass
class E(G,H): pass
class D(E,F): pass 
class C(E,G): pass
class B(C,H): pass
class A(D,B,E): pass

例如,在一个作业中,有一个问题是,在A类线性化中,E是否可能出现在C之前。

如何判断是否可能?如何能够尽可能简单地描述线性化算法(C3)? 我非常感谢各种解释和资源,因为我很难理解Python中的线性化。

提前多多感谢!

2 个答案:

答案 0 :(得分:1)

E类继承自G和H.

G和H类依赖(它们不从任何人继承)。

因为E类不依赖于C类,所以他可以在他之前进行初始化

答案 1 :(得分:1)

Python以DFS顺序查找父类或子类,而不是在BFS

file1
相关问题