0
這是更好奇的一個問題,而不是一個嚴重的問題:方法解析順序錯誤
我與多重繼承玩弄來到翻過這一點:
>>> 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
它工作正常。我首先假設在A
之前object
的繼承創造了某種名稱歧義。有人願意解釋這裏發生了什麼嗎?