当前位置:首页>>Python多重继承

Python多重继承

多重继承可以允许继承多个父类,实现多个父类的功能,具体可以参考这里

那么若当多个父类有相同的方法时,调用这个方法会如何。
答:会调用继承第一个类中的方法。这是按照Python方法解决顺序执行,参考如下代码。

class A:
    def say_hello(self):
        print("Hi from A")

class B:
    def say_hello(self):
        print("Hello from B")

class C(A, B):
    def say_hello(self):
        super().say_hello()


welcome = C()
print("the method resolution order: {}".format(C.__mro__))
welcome.say_hello()

运行结果为:

the method resolution order: (<class ‘main.C’>, <class ‘main.A’>, <class ‘main.B’>, <class ‘object’>)
Hi from A

如果需要调用每个父类的方法,可以明确写明调用。

class C(A, B):
    def say_hello(self):
        A.say_hello(self)
        B.say_hello(self)

更详细可以参见Stack Overflow

猜你喜欢