我不是指闭包,其中外部函数返回内部函数,或者特别是记忆化。在某些情况下,我想编写一个递归函数,可能带有记忆,并且在外部函数中初始化字典或其他一些数据结构似乎要简单得多,然后有一个递归辅助函数写入和访问外部函数的字典和参数。这就是我的意思——
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
而不是使用一些超长签名单独声明辅助函数,例如,
recursive_foo_helper(arr, l, i, j, k, cache={}, result=[])
我已经读过这样做是非常标准的记忆,但我很好奇是否就只为递归辅助函数做是否可以达成共识。