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 文档中的错误吗?