このコードの Python 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
print(A.__mro__)
私はこの出力を得る:
(<class '__main__.A'>, <class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.E'>, <class '__main__.G'>, <class '__main__.H'>, <class '__main__.F'>, <class 'object'>)
なぜ私は<class '__main__.C'>
前に取得するの<class '__main__.E'>
ですか?
私はそれが次のようになると思いました:
A
D
、B
、E
E
、F
|C
、H
|G
、H
等々