Python 模擬試験

Python基礎 模擬試験 第5回 問32・9章 クラス(継承)

super() を使ったメソッドの呼び出し

次のコードを実行したときの出力として、正しいものを1つ選べ。

class A:
    def hi(self):
        return "A"
class B(A):
    def hi(self):
        return "B" + super().hi()
print(B().hi())
  1. A

    B

  2. B

    A

  3. C

    BA

  4. D

    AB

正解と解説を見る

正解:C

サブクラスのメソッドは、親クラスの同名のメソッドを上書きする。super() で親クラスのメソッドを呼び出せる。

順実行する行実行後の変数
1`class A:`—
2└ `def hi(self):`—
3`class B(A):`—
4└ `def hi(self):`—
5`print(B().hi())`—
6└ `return "B" + super().hi()`—
7└ `return "A"`—
結果実際の出力BA

学習のポイント:メソッドの探索順序(MRO)も押さえる。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。