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()というメソッドが必ず実装されるようになります。
コメント