Pythonでabcモジュールを用いて抽象クラスを定義する

スポンサーリンク

Pythonでabcモジュールを用いて抽象クラス(Abstract Classes)を定義してみます。

この記事は「Pythonの抽象クラス(Abstract Classes)とは?」という記事の続きとなります。

■Python

Google Colaboratory(Google Colab),2023年3月18日時点ではPython 3.9.16が用いられる。

■abcモジュールを用いて抽象クラスを定義する

では、早速abcモジュールを用いて抽象クラスを定義します。定義のためにコードを記述します。

■コード

from abc import ABC, abstractmethod

class Test(ABC):
    @abstractmethod
    def test_d(self):
        pass

まずは「from import」でABCとabstractmethodを呼び出します。その後、Test()というオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。定義後、括弧内で「ABC」と呼ばれる抽象クラスを作成するためのデコレーターを引数,パラメータとして渡します。これでTestというクラスはABCというクラスを継承となる。その後、「@abstractmethodデコレーター」を用いて、メソッドが抽象メソッドであることを明示的に指定します。なお、今回のメソッドは、def文を用いてtest_d()というメソッドを定義しています。ちなみにメソッドが呼び出されて実行された場合は、pass文による「何もしない」処理です。そして、クラス内のメソッドで渡される最初の引数,パラメータは、オブジェクト自体でなければならないため、「self(自己)」と記述し、最初の引数として渡す。

これで抽象クラスが定義され、継承するクラスは、 Testというクラスを継承することができますが、 test_d()というメソッドを実装しなければなりません。これにより、継承したクラスが Testというクラスのインスタンス(クラスを元に作られたオブジェクト)として使用されるときに、 test_d()というメソッドが必ず実装されるようになります。

コメント

タイトルとURLをコピーしました