这更像是一个好奇的问题,而不是一个严肃的问题:
我正在玩多重继承并遇到了这个问题:
>>> 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
会产生某种名称歧义。有人愿意解释这里发生了什么吗?