两个超类具有相同方法时的行为

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总是被调用。实例方法显示了相同的行为。

谁能解释一下这是怎么回事?