入出力・エラーと例外・クラス・標準ライブラリ・対話環境(7,8,9,10,14章)
Pythonのクラスにおける多重継承のメソッド解決順序(MRO)に関する説明として、正しいものはどれか。
- A多重継承では常に最後に指定した親クラスのメソッドが優先して呼び出される
- BPythonのクラスは単一継承のみをサポートしており、複数の親クラスを指定するとエラーになる
- ✓多重継承時のメソッド解決順序(MRO)はC3線形化アルゴリズムに基づいて決定され、クラスの__mro__属性やmro()メソッドで確認できる
- DMROはプログラムの実行のたびにランダムに変化するため、事前に予測することはできない
解説
Pythonは複数の親クラスを指定する多重継承をサポートしており、どの順序でメソッドを探索するかはC3線形化アルゴリズムに基づいて一意に決定される。この順序はクラスの__mro__属性で確認できる。
根拠9章 クラス(多重継承)