資格スワイプ
入出力・エラーと例外・クラス・標準ライブラリ・対話環境(7,8,9,10,14章)

次のように定義されたクラスがある。 class Animal: def __init__(self, name): self.name = name class Dog(Animal): def __init__(self, name, breed): self.breed = breed d = Dog("Pochi", "Shiba") print(d.name) このコードを実行するとどうなるか。

  • A"Pochi" と出力される
  • B"Shiba" と出力される
  • ✓AttributeErrorが発生する
  • DTypeErrorが発生する

解説

Dogクラスの__init__でsuper().__init__(name)を呼び出していないため、親クラスAnimalのname属性が設定されず、d.nameへのアクセス時にAttributeErrorが発生する。

根拠Pythonチュートリアル9章 クラス(継承とsuper()による親クラスの初期化)

← 前の問題次の問題 →
スワイプでまとめて流す