私は、外部関数が内部関数を返すクロージャ、または特にメモ化には言及していません。おそらくメモ帳を使って再帰関数を書こうと思っていた例がいくつかありました。外部関数の中にaa dictや他のデータ構造を初期化してから、 dictと外部関数の引数にアクセスします。私はこれを行うことはメモ化のためにかなり標準であることを読んだことがあるPythonでネストされた関数を使うのは良いですか?
recursive_foo_helper(arr, l, i, j, k, cache={}, result=[])
def foo(arr, l):
cache = {}
result = []
def recursive_foo_helper(i, j, k):
# some code that depends on arr, l, i, j, k, cache, and result
for (x, y) in arr:
if recursive_foo_helper(x, y, k):
return result
return None
の代わりに、ヘルパー関数は、いくつかの超ロング署名などで個別に宣言した、が、私はだった - ここで私が何を意味するかです再帰的なヘルパー関数のためだけに行うことができるかどうかについて合意があるかどうか不思議です。
他の場所でこの関数を呼び出さない場合、なぜこれが悪いことになるのかわかりません。 – OptimusCrime