【发布时间】:2024-01-02 11:58:01
【问题描述】:
这更像是一个好奇的问题,而不是一个严肃的问题:
我在玩多重继承时遇到了这个问题:
>>> 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 在A 之前的继承会产生某种名称歧义。有人愿意解释这里发生了什么吗?
【问题讨论】:
标签: python multiple-inheritance method-resolution-order