python是多继承,所以继承多个类时,会产生查找顺序的问题? 如下就是查找顺序
当类是经典类时,多继承情况下,会按照深度优先方式查找。
当类是新式类时,多继承情况下,会按照广度优先方式查找。(python3默认是新式类,默认继承object类)
新式类包含了更多的功能,推荐使用新式类。 父类继承了object类,该类就是新式类,否则是经典类。
对于定义的每一个类,python都会计算出一个方法解析顺序(MRO)列表,这个MRO就是一个简单的所有基类的线性顺序列表。
通过类.__mro__查看继承顺序
记住几个原则: 1. 子类会优先于父类被检查. 2. 多个父类会根据它们在__mro__元祖中的顺序被检查. 3. 如果对下一个类存在两个合法的选择,选择第一个类,也就是说找到了一个类, 就不会再去找下一个了。