問題タブ [single-dispatch]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 装飾後に単一ディスパッチのオーバーロードを更新する
序文
のようなデコレータで単一のディスパッチを使用していますfunctools.singledispatch
今、条件付きで装飾したいserialize_int
場合
それから電話する
ご覧のとおり、「古い」装飾のないバージョンを呼び出します。これは、「古い」オーバーロードを 1 つしか登録serialize
していないために発生し、それが新しい関数オブジェクトであるため、装飾について何も知らないためです。
問題
「ディスパッチャー」関数が変更を取得するようにオーバーロードを変更する方法は?
装飾後に再度登録できるのは理解してserialize_int
いますが、コードの重複の問題のようですが、他に方法はありますか?
または、より一般的には、関数オブジェクトをその場で変更することはできますか? 装飾__call__
属性は役に立ちません。