所以我一直在对Python 2.7的精彩世界进行一些研究。多重继承和MRO,我在阅读时一直在尝试不同的例子,并且遇到了一些让我难以理解的东西。Python 2.7 MRO的行为很奇怪
所以,你有你的经典钻石MI例如:
class A:
def __init__(self):
print "A"
class B(A):
pass
class C(A):
def __init__(self):
print "C"
class D(B, C):
pass
instance = D()
在我读过的所有MRO资源,这个例子应该有DBCA的MRO所以初始化d应打印“C”,而是它打印“A”。奇怪的是,当我将A,B,C或D的定义更改为类似int
之类的子类时,它给了我打印“C”的预期行为
为什么类结构的MRO的行为依赖于基类是一个原始类型?这是一个错误?