我有两个基类A,B每个基类都有一个方法myfunc,它打印出不同的字符。
class A:
def myfunc(self):
print('A')
class B:
def myfunc(self):
print('B')
我还有一个class C继承自A和B两者的。在class C我已经覆盖myfunc并调用super它。
class C(B, A):
def myfunc(self):
super().myfunc()
现在,如果我执行以下代码,它只打印一个字符
x = C()
x.myfunc()
输出:
B
我试过print(C.__mro__)这给了我(<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>)所以它也应该去class A打印字符A。正确的?
另外,如果我像这样切换继承顺序C(A,B)并使用相同的代码,则会跳过class B。
我的问题:
为什么会跳过class A
?
如何 在两个类中执行myfunc
方法A
B
我查阅了 类似的讨论,但发现它令人困惑。
达令说
相关分类