Pythonでポリモーフィズム
Pythonでポリモーフィズムを使いたくてインターフェースを探したがまさかのなし。 スクリプト初心者はびっくり。さらにググります。
でもpython3系からは抽象クラスを表現できるとのことで頑張ってみることに 結局ベースとなるクラスを抽象クラスとしてポリモーフィズムを利用した
備忘録
抽象クラス 抽象クラスを定義する際は下記を定義し、
クラス名の後にmetaclass=ABCMeta
と記述(abstractmethodは適宜追加のこと)from abc import ABCMeta, abstractmethod
静的メソッド 余談では有りますが、Pythonでは静的メソッドに対して
@staticmethod
を記述することで、そのメソッドは静的メソッドとなります
以上のことを踏まえて簡単に抽象クラスと継承クラスを記述しました
(該当箇所に#
で番号を振ってあります)
# 1.
from abc import ABCMeta, abstractmethod
class BasePush(metaclass=ABCMeta):
@staticmethod
@abstractmethod # 2, 4.
def push(msg):
pass
class Push(BasePush):
@staticmethod # 3.
def push(msg):
# 送信処理