【发布时间】:2020-04-30 18:39:08
【问题描述】:
def memoize(fn):
memory=dict()
def inner(inpt):
if not inpt in memory:
memory[inpt] = fn(inpt)
return memory[inpt]
return inner
@memoize
def expected_rounds(picks_to_go):
#algorithm....
ans += expected_rounds(new_picks_to_go) #some recursion
#algorithm....
return ans
在函数成功结束执行并返回答案后,如何在memoize装饰器中访问(甚至打印)变量memory?
【问题讨论】:
-
鉴于您目前的实现方式,它仅在 closure 中。如果你设置例如
inner._memory = memory在return inner之前,您可以访问expected_rounds._memory。
标签: python python-3.x python-decorators