Pythonの標準モジュールであるabc
は、抽象基底クラス (Abstract Base Classes, ABCs) を定義するためのインフラストラクチャを提供します。このモジュールはPEP 3119で概説されており、そのPEPではなぜこれがPythonに追加されたのかが説明されています。
abc
モジュールは、抽象基底クラスを定義するためのメタクラスABCMeta
と、継承を通じて抽象基底クラスを定義するためのヘルパークラスABC
を提供します。
from abc import ABC, ABCMeta, abstractmethod
class MyABC(metaclass = ABCMeta):
pass
class Person(ABC):
pass
上記の例では、ABCMeta
をメタクラスとして使用して抽象基底クラスMyABC
を定義しています。また、ABC
を継承して抽象基底クラスPerson
を定義しています。
抽象基底クラスは、具体的な実装を必要とせず、子クラスに共通のAPIを定義することができます。これにより、特定のインターフェースを提供するかどうかをテストするために使用できる抽象基底クラスが提供されます。
以上がPythonのabc
モジュールと抽象基底クラスについての基本的な説明です。この知識を活用して、Pythonプログラミングの幅を広げてみてください。