3
    クラス 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 ドキュメントのエラーですか?

4

0 に答える 0