据我所知,MRO是属性在类层次结构中的顺序。
如果我像在myInstance.foo中一样使用属性' foo‘,那么将使用在MRO中找到的第一个foo。
并且查找通常会停止。
现在,假设bar()使用super()。
由于bar返回MRO中的下一个基本实例,因此myInstance.bar()将调用其层次结构链中的所有super() ()。
如果所有超类的bar()也调用super().bar(),
将按照MRO指定的顺序调用bar()。
我对它们的理解正确吗?
发布于 2013-07-13 10:19:20
是啊。(super比“返回MRO中的下一个基本实例”稍微复杂一些,但是您理解在返回的对象上查找属性的作用,这才是最重要的。)
https://stackoverflow.com/questions/17626355
复制相似问题