码迷,mamicode.com
首页 > 编程语言 > 详细

Python 多继承与MRO-C3算法

时间:2018-04-09 00:32:26      阅读:403      评论:0      收藏:0      [点我收藏+]

标签:如何   strong   广度   分享   算法   bsp   结果   父类   关系图   

继承关系图:

技术分享图片

广度优先遍历:先找A,再找B、C,最后找D、E。(顺序:A、B、C)

深度优先遍历:先找A,再找B,接着找D、E(把B里面找完);然后找C。(顺序:A、B、D、E、C)


 

MRO-C3 搜索:

 

>>> class D:
    name = ‘d‘
  
>>> class E:
    pass

>>> class C:
    name = ‘c‘
  
>>> class B(D,E):  #继承多个父类,如:遗传爸爸和妈妈的基因。
    pass

>>> class A(B,C):  #继承多个类,如:爸爸和妈妈都会吃饭,但是每个人吃饭的方式不一样,看如何遗传
    pass

>>> print(A.name)  #类A继承了B类和C类,它会先去B类(B类继承了D类和E类)里面,找结果是pass;然后去B类里面的D类找,结果用name属性。
#如果还没有的话就回去E类里面找。 d >>>

 

  

 

Python 多继承与MRO-C3算法

标签:如何   strong   广度   分享   算法   bsp   结果   父类   关系图   

原文地址:https://www.cnblogs.com/longxd/p/8747955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!