| 关键词: nbsp print 顺序 extral 子类 优先 self 算法 搜索 调性 |
python中使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承,也叫菱形继承问题)等 MROMRO即method resolution order,用于判断子类调用的属性来自于哪个父类。在Python2.3之前,MRO是基于深度优先算法的,自2.3开始使用C3算法,定义类时需要继承 从图中可以看出,旧式类查找属性时是深度优先搜索,新式类则是广度优先搜索C3算法最早被提出是用于Lisp的,应用在Python中是为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性的问题。
示例看下面的例子 根据广度搜索原则最先搜索到 类 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|