これは、深刻な問題というよりも、好奇心の問題です。
私は多重継承で遊んでいて、これに出くわしました:
>>> class A(object):
... def __init__(self): print "A.__init__() called"
...
>>> class B(object, A): pass
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Cannot create consisten method resolution
order (MRO) for bases object, A
取得しTypeError
ます。ただし、多重継承の順序を逆にすると、次のようになります。
>>> class B(A, object): pass
>>> b = B()
A.__init__() called
正常に動作します。object
最初に、 beforeの継承A
によって、ある種の名前のあいまいさが生じると思いました。誰かがここで何が起こっているのか説明したいと思いますか?