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