关于多重继承:了解python中的mro和super()

understanding mro and super() in python

我理解mro是在类层次结构中找到属性的顺序。

如果我像myinstance.foo中那样使用属性"foo",那么将使用mro中找到的第一个foo。查找通常会停止。

现在,假设bar()使用super()。由于super()返回MRO中的下一个基实例,myInstance.bar()将调用其层次结构链中的所有bar()。

如果所有超级类的bar()也调用super().bar(),bar()将按mro指定的顺序调用。

我对他们的理解正确吗?


是的。(super比"返回MRO中的下一个基实例"要复杂一些,但是您了解返回对象的属性查找是做什么的,这才是最重要的。)