Python多重继承
程序员文章站
2022-07-15 17:31:12
...
多重继承可以允许继承多个父类,实现多个父类的功能,具体可以参考这里
那么若当多个父类有相同的方法时,调用这个方法会如何。
答:会调用继承第一个类中的方法。这是按照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