Python Mixin多继承和super()

2021-08-02  本文已影响0人  霡霂976447044
class A(object):
    def __init__(self):
        # super(A, self).__init__()
        print('aaa')


class B(object):
    def __init__(self):
        # super(B, self).__init__()
        print('bbb')


class Son(A, B):
    pass


print(Son.mro())

Son()

多继承,Son会调用mro最近的A的__init__方法。如果在A中没有调用super(A, self).__init__()那么是不会执行B的__init__

[<class '__main__.Son'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>]
aaa

在mixin中如果要调用另一个父类的逻辑,就需要使用super()

上一篇 下一篇

猜你喜欢

热点阅读