@singledispatch
Pythonでオーバーロードする
際に使用するやつ
Pythonのデコレータ
として、関数の上に記述する
組み込みモジュールである
functoolsモジュール
が提供している
@singledispatchmethod
@singledispatch
に類似するものとして、
@singledispatchmethod
というものがある
読み:「しんぐる でぃすぱっち めそっど」
公式の説明
では以下の通り
メソッドを シングルディスパッチ ジェネリック関数 に変換します。
日本語で書いていないので
さっぱりわからん
どう使い分ける?
@singledispatch
クラスに入っていない関数全般
@singledispatchmethod
クラスに入っている関数(メソッド)全般
具体的には以下
インスタンスメソッド
クラスメソッド
(
@classmethod
)
静的メソッド
(
@staticmethod
)
抽象メソッド
(
@abstractmethod
)
引数で
self
とか
cls
とかを取っているのに、
method
がついていない方を使うとエラーになる
使い方
以下を参照
【Python】引数が異なる関数を定義する方法【オーバーロード】|ゆうまるブログ
@singledispatchmethod
も、
@singledispatch
と同様の書き方で実装できる