Python 模擬試験

Python実践 模擬試験 第3回 問12・4章 Pythonのクラス(継承)

抽象基底クラス

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

from abc import ABC, abstractmethod
class Base(ABC):
    @abstractmethod
    def run(self): ...
try:
    Base()
except TypeError:
    print("TypeError")
  1. A

    何も出力されない。

  2. B

    NotImplementedError

  3. C

    AttributeError

  4. D

    TypeError

正解と解説を見る

正解:D

ABC と @abstractmethod で、サブクラスが実装すべきメソッドを強制できる。抽象メソッドが残るクラスは、インスタンス化できない。

順実行する行実行後の変数
1`from abc import ABC, abstractmethod`—
2`class Base(ABC):`—
3└ `def run(self): ...`—
4└ `@abstractmethod`—
5└ `def run(self): ...`—
6└ `@abstractmethod`—
7└ `def run(self): ...`—
8`try:`—
9`Base()`—
10`except TypeError:`—
11`print("TypeError")`—
分岐`except TypeError:`実行される
結果実際の出力TypeError

学習のポイント:インターフェースの役割を持たせるときに使う。

この問題を演習で解く →

問題一覧へ

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