多继承顺序

Posted gege4105

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多继承顺序相关的知识,希望对你有一定的参考价值。

技术分享

看上图的多继承关系,一共4层。

Python2.2及其2.7中也兼容了经典类和新式类。所以在经典类的继承顺序中注重的是深度优先。即课上所讲的一条道走到黑。[g,e,b,a]这种继承方式会忽略旁支如d的函数。

新式类为广度优先即[g,e,f,b,c,d,a]

但是在Python3中,寻找方法是利用了c3算法。顺序是[g,e,b][f,c][d,a] 类似于先深度在广度的寻找方法。每一个中括号相当于先深度碰到了节点后(a,c节点不找)转回广度继续寻找。。。循环如此。

 

以上是关于多继承顺序的主要内容,如果未能解决你的问题,请参考以下文章

多继承

Python高级语法-多继承MRO相关-多继承顺序(4.5.1)

Python:多继承时的继承顺序

Scala 多继承顺序

多继承顺序

面向对象--多继承的C3算法