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プログラミングの幅を広げてみてください。