无法创建一致的方法解析顺序(MRO 错误)
A consistent Method Resolution Order couldn't be created (MRO error)
class Base(object):
def __init__(self):
print ("Base")
class childA(Base):
def __init__(self):
print ('Child A')
Base.__init__(self)
class childB(Base,childA):
def __init__(self):
print ('Child B')
super(childB, self).__init__()
b=childB()
继承将成为 childB、Base、childA、Base,在应用 MRO 之后,它应该成为 childB、childA、Base。但它抛出 MRO 错误。为什么?
childB
试图从 Base
继承两次 ,一次通过 childA
,一次直接继承。通过删除 childB
.
上的多重继承来修复
class Base(object):
def __init__(self):
print ("Base")
class childA(Base):
def __init__(self):
print ('Child A')
Base.__init__(self)
class childB(childA):
def __init__(self):
print ('Child B')
super(childB, self).__init__()
b=childB()
class Base(object):
def __init__(self):
print ("Base")
class childA(Base):
def __init__(self):
print ('Child A')
Base.__init__(self)
class childB(Base,childA):
def __init__(self):
print ('Child B')
super(childB, self).__init__()
b=childB()
继承将成为 childB、Base、childA、Base,在应用 MRO 之后,它应该成为 childB、childA、Base。但它抛出 MRO 错误。为什么?
childB
试图从 Base
继承两次 ,一次通过 childA
,一次直接继承。通过删除 childB
.
class Base(object):
def __init__(self):
print ("Base")
class childA(Base):
def __init__(self):
print ('Child A')
Base.__init__(self)
class childB(childA):
def __init__(self):
print ('Child B')
super(childB, self).__init__()
b=childB()