B1类(对象):
定义 f(自我):
打印“B1.f”
B2类(对象):
定义 f(自我):
打印“B2.f”
D级(B1,B2):
经过
d = D()
超级(B1,d).f()
打印 B1.__mro__
为什么上面的代码打印:
B2.f (<class '__main__.B1'>, <type 'object'>)
而文档http://docs.python.org/2/library/functions.html#super说:
超级(类型[,对象或类型]): ... 该类型的 __mro__ 属性列出了 ... super() 使用的方法解析搜索顺序。
似乎使用的 MRO 不是 super() 的“类型”参数之一,而是“对象或类型”参数之一。这是 Python 文档中的错误吗?