数学関数の名前、入力 (単一の数値)、および結果を格納する辞書を作成したいと考えています。
構造は次のようなものでなければなりませんcache = {procedure: {input:result}}
i.e.
cache = {'factorial': {4:24, 10:3628800, 20:2432902008176640000},
'square': {2:4, 5:25, 10:100}
'sum': {3:6, 5:10, 7:14}}
def factorial(n):
#print "Running factorial"
result = 1
for i in range(2, n + 1):
result = result * i
return result
def square(n):
result = n ^ 2
return result
def sum(n):
result = n * 2
return result
値を格納する数学関数がわからない可能性があるという意味で、キャッシュ辞書を事前に作成したくありません。次に、cached_execution という名前の関数を作成します。この関数は、関数が入力に対して呼び出されたかどうかを最初にキャッシュをチェックし、そうであれば、input:result ペアの値として格納されているものを返します。
そうでない場合は、操作を計算し、それをキャッシュに保存して値を返します。関数がキャッシュに存在する場合は、その下に別のキーと値のペアを作成する必要があります。そうでない場合は、関数名の新しいエントリを作成し、その下に入力/結果のキー/値を保存します。
cached_execution の構造は単純ですが、辞書に追加する方法がわかりません。append は、辞書構造に許可されているメソッドではないようです。私は成功せずにさまざまなことを試みました。
助けに感謝します。