类变量在多重继承 Python 类中如何发挥作用?
pythonserver side programmingprogramming
在 Python 中,一个类可以从多个基类派生。这称为多重继承。
在多重继承中,所有基类的特性都会继承到派生类中。多重继承的语法与单继承类似。
class Super1: pass class Super2: pass class MultiDerived(Super1, Super2): pass
在多重继承场景中,将首先在当前类中搜索任何指定的属性。如果未找到,则继续以深度优先、从左到右的方式搜索父类,而不会搜索同一个类两次。
因此,在上面的 MultiDerived 类示例中,搜索顺序为 [MultiDerived, Super1, Super2, object]。这种顺序也称为多派生类的线性化,用于找到这种顺序的规则集称为方法解析顺序 (MRO)。
MRO 确保类始终出现在其父类之前,如果有多个父类,则顺序与基类的元组相同。
类的 MRO 可以视为 __mro__ 属性或 mro() 方法。前者返回一个元组,而后者返回一个列表。
>>> MultiDerived.mro() [<class '__main__.MultiDerived'>, <class '__main__.Super1'>, <class '__main__.Super2'>, <class 'object'>]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

