Iny*_*Kim 5 python inheritance python-3.x
出于纯粹的好奇,我做了以下事情。
class A:
def x():
print("A.x")
class B:
def x():
print("B.x")
class C(A,B):
pass
C.x()
Run Code Online (Sandbox Code Playgroud)
哪些输出
A.x
Run Code Online (Sandbox Code Playgroud)
现在我期望的行为是执行后来的超类的方法B.x。因为我认为 for 的方法A将首先定义而不是B覆盖它们的方法。相反,A.x被打印出来。事实上,第一个超类的方法.x总是被调用。实例方法显示了相同的行为。
谁能解释一下这是怎么回事?