python中super多继承顺序
时间: 2023-11-20 18:55:32 浏览: 92
Python super()函数使用及多重继承
在 Python 中,当一个类继承自多个父类时,会按照特定的顺序进行方法的查找和调用,这个顺序被称为方法解析顺序(Method Resolution Order,简称 MRO)。MRO 的计算方式是通过 C3 算法来实现的,其基本原则是:
1. 子类永远先于父类被检查
2. 多个父类按照它们在括号内从左到右的顺序被检查
3. 如果对下一个类存在两个合法的选择,选择第一个父类
在 Python 2.x 版本中,MRO 的计算方式是采用经典类的深度优先搜索(DFS)算法;在 Python 3.x 版本中,MRO 的计算方式是采用新式类的 C3 算法。因此,如果想要正确地实现多继承,需要遵守 MRO 的规则,否则可能会出现一些难以预料的问题。
阅读全文