MRO


class Base:
    def __init__(self):
        print('Base.__init__')

class Child1(Base):
    def __init__(self):
        Base.__init__(self)
        print('Child1.__init__')

class Child2(Base):
    def __init__(self):
        Base.__init__(self)
        print('Child2.__init__')

class Child3(Base):
    def __init__(self):
        Child1.__init__(self)
        Child2.__init__(self)
        print('Child3.__init__')


c3 = Child3()


check print output is this what you expected !
Base.__init__
Child1.__init__
Base.__init__
Child2.__init__
Child3.__init__

and now try this

class Base:
    def __init__(self):
        print('Base.__init__')

class Child1(Base):
    def __init__(self):
        super().__init__()
        print('Child1.__init__')

class Child2(Base):
    def __init__(self):
        super().__init__()
        print('Child2.__init__')

class Child3(Child1, Child2):
    def __init__(self):
        super().__init__()
        print('Child3.__init__')


c3 = Child3()
print(Child3.__mro__)

(<class '__main__.Child3'>, <class '__main__.Child1'>, <class '__main__.Child2'>, <class '__main__.Base'>, <class 'object'>)

原文链接:MRO

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容