python:MRO的计算方式
我们都已经知道,Python 3(Python 2 的新式类)中多继承模式是使用 C3 算法来确定 MRO(Method Resolution Order) 的。 下面就讲解C3算法具体是怎么计算的。 MRO计算规则 首先来定义一些符号: 用CN表示一个类:C1, C2, C3, ..., CN C1 C2 C3 ... CN 表示的是一个包含多个类的列表 其中: head = C1 tail = C2 ... CN 加法运算: C + (C1 C2 ... CN) = C C1 C2 ... CN L[C]表示类C的线性化,其实就是C的MRO,比如有个类: class C(B1
用户评论