Masayan tech blog.

  1. ブログ記事一覧>
  2. PythonでInterface用のクラスを作成する方法

PythonでInterface用のクラスを作成する方法

公開日

環境

  • Windows 10
  • Python 3.10.1

結論

  • pythonはバージョン3で抽象基底クラス(ABC: Abstract Base Class)というものをサポートするようになったので、そちらを使用する
  • 上記により、インターフェースに定義された抽象メソッドが、実装クラスに定義されていない場合は、エラー(TypeError: Can't instantiate abstract class ClassName with abstract method method_name)を吐くようになる

実装

インターフェース

  • @abstractmethodには実装クラスに必ず定義させたいメソッドを記述する
  • 抽象メソッドなので、中身の処理自体にはpassを記述する

shared\Domain\i_xweb_element.py

from abc import *

# インターフェース
class IXWebElement(metaclass=ABCMeta):
    @abstractmethod
    def get_element(self):
        pass

実装クラス

  • 実装クラスの引数に作成したインターフェースを渡す
  • 今回のケースでは、get_elementメソッドが必須なので、定義せずにこのクラスのインスタンスを生成するとエラーが生じる

shared\Domain\xweb_element.py

from shared.Domain.i_xweb_element import IXWebElement

class XWebElement(IXWebElement):
    def __init__(self, key, element, value):
        self.key = key
        self.element = element
        self.value = value

    def get_key(self):
        return self.key

    # def get_element(self):
    #     return self.element

    def get_value(self):
        return self.value

以上です

まとめ

いかがでしたでしょうか。本記事では、PythonでInterface用のクラスを作成する方法について紹介しています。ぜひ参考にしてみてください