Kodrill

Python 3 エンジニア認定実践試験 / Python のクラスと型ヒント ・ 無料問題 3/5

Python のクラスと型ヒント 問題3[継承]

次のコードを実行したときの出力を選んでください。

Python
class Animal:    def __init__(self, name):        self.name = name​    def speak(self):        return f"{self.name}: ..."​class Dog(Animal):    def __init__(self, name, breed):        super().__init__(name)        self.breed = breed​    def speak(self):        return super().speak().replace("...", "wan")​d = Dog("pochi", "shiba")print(d.speak(), isinstance(d, Animal), issubclass(Dog, Animal))

選択肢

  • A.pochi: wan True True正解
  • B.pochi: ... True True
  • C.pochi: wan True False
  • D.pochi: wan False True

解説実行して確認済み

super() は親クラスのメソッドを呼び出すときに使います。Dog.__init__ は super().__init__(name) で親の初期化を行い、Dog.speak は親の speak の戻り値を加工して pochi: wan を返します。isinstance はサブクラスのインスタンスにも True を返し、issubclass(Dog, Animal) も True です。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「Python のクラスと型ヒント」の要点を解説記事で読む

「Python のクラスと型ヒント」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。