Documentation Python

Pythonには、Javaのようなインターフェースの概念がありませんが、abcモジュールを使用した抽象基底クラス(ABC)を使ってインターフェースの役割を担うことができます。抽象クラスは、abc.ABCMetaを使って作成し、メソッドに@abstractmethodを付けることで、継承先での実装を強制できます。 例えば、次のようにして抽象クラスを作成します。

from abc import ABC, abstractmethod
class MyAbstractClass(ABC):
    @abstractmethod
    def my_method(self):
        pass

この構造は、継承したクラスに特定のメソッド実装を要求するため、インターフェースに似ていますが、抽象クラスは共通のメソッドの実装を含むことができる点が異なります。 Pythonは動的な言語であり、型システムよりも「ダックタイピング」に依存していますが、大規模プロジェクトでは抽象クラスを使ってコードの設計を明確にすることが一般的です。

円