ランダムネットワークのさまざまな統計分析を行ういくつかの高価な関数を永続的にメモ化するための小さなクラスを作成しました。
これらはすべて純粋関数です。すべてのデータは不変です。ただし、一部の関数は関数を引数として取ります。
Pythonでは、関数オブジェクトの同等性は関数オブジェクトIDと同等であり、関数の実装が変更されなくてもセッション間で持続しないため、これらの引数に基づいてキーを作成することは小さな問題です。
とりあえず関数名を文字列として使ってハッキングしていますが、関数や無名関数の実装を変更することなどを考え始めると、それ自体が問題になります。しかし、私はおそらくそのようなことを心配する最初の人ではありません。
Pythonで関数の引数を使用して関数を永続的にメモ化するための戦略はありますか?