理解python中的mro和super()

理解python中的mro和super(),python,multiple-inheritance,super,method-resolution-order,Python,Multiple Inheritance,Super,Method Resolution Order,我理解的是在类层次结构中找到属性的顺序 如果我在myInstance.foo中使用属性“foo”,那么将使用在MRO中找到的第一个foo。 查找通常会停止 现在,假设bar使用super。 由于super返回MRO中的下一个基本实例,myInstance.bar将调用其层次结构链中的所有bar 如果所有超级类的bar也调用super.bar, bar将按照MRO指定的顺序调用 我理解正确吗?是的。super比在MRO中返回下一个基本实例要复杂一些,但是您知道返回对象上的属性查找是做什么的,这才是

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

如果我在myInstance.foo中使用属性“foo”,那么将使用在MRO中找到的第一个foo。 查找通常会停止

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

如果所有超级类的bar也调用super.bar, bar将按照MRO指定的顺序调用

我理解正确吗?

是的。super比在MRO中返回下一个基本实例要复杂一些,但是您知道返回对象上的属性查找是做什么的,这才是重要的