1.C3算法求解MRO
求解MRO,在Python2.3之前是基于深度优先算法,但为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性以及继承不清晰的问题,从Python2.3起应用了新的C3算法。

1.1 (根据C3算法)手动计算


1.2 代码实现Python3的C3算法

验证代码的正确性,输出结果一致,如下所示:

2.Python3的super详解
更多参考:「Python super 详解」

2.1 super的调用方式

2.2 super的方法查找规则

求解MRO,在Python2.3之前是基于深度优先算法,但为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性以及继承不清晰的问题,从Python2.3起应用了新的C3算法。
验证代码的正确性,输出结果一致,如下所示:
更多参考:「Python super 详解」
本文标题:Python3的super详解:MRO、C3算法
本文链接:https://www.haomeiwen.com/subject/chxklltx.html
网友评论