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错误。为什么?
答案 0 :(得分:0)
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()