【发布时间】:2021-04-27 13:08:36
【问题描述】:
我正在尝试更好地理解 Python 中的 MRO,并遇到了这个示例:
class A:
def process(self):
print('A process()')
class B(A):
pass
class C(A):
def process(self):
print('C process()')
class D(B,C):
pass
obj = D()
obj.process()
打印“C process()”。我明白为什么,因为顺序是 D>B>C>A。但是,当类 C 不继承 A 时,将打印“A process()”并且顺序变为 D>B>A>C。是什么导致订单在这里转移?为什么现在没有在 A 类之前到达 C 超类?
【问题讨论】:
标签: python python-3.x method-resolution-order