[英]Python MRO in plain English
我是 Python 的新手,無法理解 Python MRO。 有人可以盡可能簡單地解釋下面的問題嗎?
為什么這段代碼拋出TypeError: Cannot create a consistent method resolution :
class A:
def method(self):
print("A.method() called")
class B:
def method(self):
print("B.method() called")
class C(A, B):
pass
class D(B, C):
pass
d = D()
d.method()
雖然這段代碼工作正常:
class A:
def method(self):
print("A.method() called")
class B:
def method(self):
print("B.method() called")
class C(A, B):
pass
class D(C, B):
pass
d = D()
d.method()
當您在第一個示例中解析方法的層次結構時,您會得到
在第二個例子中,你得到
第一個不起作用,因為關於 B.method 是在 A.method 之前還是之后,它是不一致的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.