python是多继承,所以继承多个类时,会产生查找顺序的问题? 如下就是查找顺序

python四十六:继承顺序之线性顺序列表_广度优先

 当类是经典类时,多继承情况下,会按照深度优先方式查找。

 当类是新式类时,多继承情况下,会按照广度优先方式查找。(python3默认是新式类,默认继承object类)

新式类包含了更多的功能,推荐使用新式类。 父类继承了object类,该类就是新式类,否则是经典类。

 

  对于定义的每一个类,python都会计算出一个方法解析顺序(MRO)列表,这个MRO就是一个简单的所有基类的线性顺序列表。

 通过类.__mro__查看继承顺序

  记住几个原则: 1. 子类会优先于父类被检查.   2. 多个父类会根据它们在__mro__元祖中的顺序被检查.  3. 如果对下一个类存在两个合法的选择,选择第一个类,也就是说找到了一个类, 就不会再去找下一个了。