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'>]

更新日期:2020-06-16

368 次浏览

开启你的职业生涯

完成课程以获得认证

开始学习
广告