クラス B1(オブジェクト): デフォルト f(自己): 「B1.f」を出力 クラス B2(オブジェクト): デフォルト f(自己): 「B2.f」を出力 クラスD(B1、B2): 合格 d = D() スーパー (B1, d).f() B1.__mro__ を印刷
上記のコードが出力される理由:
B2.f (<クラス '__main__.B1'>、<タイプ 'オブジェクト'>)
一方、ドキュメントhttp://docs.python.org/2/library/functions.html#superは次のように述べています。
super(タイプ[、オブジェクトまたはタイプ]): ... 型の __mro__ 属性には、... super() によって使用されるメソッド解決の検索順序がリストされます。
使用されている MRO は、super() の「type」パラメータのものではなく、「object-or-type」パラメータのもののようです。これは Python ドキュメントのエラーですか?