这是维基百科中的定义,下面这张图是一张多继承的关系图:
?
那么这里的mro解析顺序是如何的呢?单纯看图很难得出答案。...C3线性算法的推导过程如下:
假设类C继承自父类B1,...Bn,类C的解析列表公式如下:
?
这个公式表明C的解析列表是通过对其所有父类的解析列表及其父类一起merge得到的。...推导过程
我们用上面的那张图试一下推导出mro的解析顺序。...] + merge(L[O],L[O],L[O])
= [K1,A,B,C,O]
L(K2) = [K2,D,B,E,O]
L(K3) = [K3,D,A,O]
以上是K1,K2,K3的解析顺序...:Z的解析顺序:Z->K1->K2->K3->D->A->B->C->E->O
为了验证答案,我们在python中运行
print(Z.mro())
结果如下
[<class '__main__.Z'