无法创建一致的方法解析顺序(MRO 错误)


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()

继承将作为子项B,基数,子项A,基数,应用MRO后,它应变为子项B,子项A,基数。但它抛出的 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()

相关内容

  • 没有找到相关文章

最新更新