Python多继承中类变量的作用是什么?
在Python中,一个类可以从多个基类中继承,这被称为多重继承。
在多重继承中,所有基类的特征都被继承到派生类中。多重继承的语法类似于单一继承。
class Super1:
pass
class Super2:
pass
class MultiDerived(Super1, Super2):
pass
在多重继承的情况下,任何指定的属性首先在当前类中搜索。如果没有找到,则继续向父类进行深度优先搜索,从左到右,而不搜索相同的类两次。
因此,在上面的MultiDerived类的示例中,搜索顺序是[MultiDerived,Super1,Super2,object]。这个顺序也被称为MultiDerived类的线性化,用于查找此顺序的规则集称为方法解析顺序(MRO)。
MRO确保类始终出现在其父类之前,在有多个父类的情况下,顺序与基类元组相同。
类的MRO可以视为mro属性或mro()方法。前者返回元组,而后者返回列表。
>>> MultiDerived.mro()
[<class '__main__.MultiDerived'>,
<class '__main__.Super1'>,
<class '__main__.Super2'>,
<class 'object'>]
更多Python相关文章,请阅读:Python 教程
极客教程