MRO 基类搜索顺序(c3算法)

  深度搜索

  广度搜索

遵循深度优先搜索顺序 :经典类

遵循广度优先搜索顺序 :新式类

面向对象编程--继承中的属性查找顺序_搜索

 

上图为经典类 ,查找顺序,teacher_obj>>>student--大脑袋(school)--class 一条路找到黑,再去找分支

面向对象编程--继承中的属性查找顺序_广度优先搜索_02

 

上图为新式类,查找顺序, teacher_obj>>>student--class--大脑袋(school)--object  先找分支再找大脑袋(school)

 

注意:class Teacher(Student,Class): 继承的类左侧的先找

 

上述为多继承,单继承更简单就是一条路找到黑>>>不管是单继承还是多继承都遵循MRO(基类搜索顺序-c3算法)--下面看实例

面向对象编程--继承中的属性查找顺序_广度优先搜索_03

 

 

 python2.x中没有__mro__属性和mro()方法,需要验证自行实践