我在理解python的mro(方法解析顺序)时有点困难。Python从左到右运行。所以根据我的理解,要求M的顺序应该是。 M、 B,A,Z,X,Y
class X: pass
class Y: pass
class Z: pass
class A(X,Y): pass
class B(Y,Z): pass
class M(B,A,Z): pass
print(M.mro())
但正确的呼叫顺序是。你知道吗
[<class '__main__.M'>,
<class '__main__.B'>,
<class '__main__.A'>,
<class '__main__.X'>,
<class '__main__.Y'>,
<class '__main__.Z'>,
<class 'object'>]
有谁能解释一下订购的方式,帮我理解一下。谢谢
mro从Python2.3开始就基于C3算法,“merge”是该算法的核心。how merge works。 根据您的代码,这里我们可以列出如何获得mro(M):
回到
mro(M)
:相关问题 更多 >
编程相关推荐