【发布时间】:2021-10-23 14:50:44
【问题描述】:
在下面的示例中,我希望看到:
CarChild1
CarChild2
但它会打印:
CarChild1
CarChild1
场景是我有一个继承了 2 个类的类。
它需要按正确的顺序调用两个父类的run()函数,但由于某种原因,它只调用了第一个父类的函数。
下面的示例代码说明了这个问题:
class CarChild1:
def run(self):
self._print_name()
def _print_name(self):
print('CarChild1')
class CarChild2:
def run(self):
self._print_name()
def _print_name(self):
print('CarChild2')
class CarChild3(CarChild1, CarChild2):
def run(self):
CarChild1.run(self)
CarChild2.run(self)
carChild3 = CarChild3()
carChild3.run()
【问题讨论】:
-
如果你特别希望
CarChild2使用CarChild2中声明的print_name方法,你可以调用CarChild2._print_name(self)。 -
如何在不更改所有单个类的情况下解决此问题?
标签: python python-3.x multiple-inheritance