9

このコードの 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'>ですか?

私はそれが次のようになると思いました:

  1. A
  2. DBE
  3. EF| CH| GH

等々

4

1 に答える 1