【发布时间】:2020-10-02 20:42:38
【问题描述】:
我正在使用递归函数,例如:
from functools import lru_cache
init = {0:1,1:1}
@lru_cache(maxsize=10000)
def fib(n):
global init
if n in init.keys():
return init[n]
else:
return fib(n-1)+fib(n-2)
我将 init 定义为一个全局变量,以便保存所有中间步骤以供将来进行任何计算,但如果我运行:
print(fib(20))
print(init)
打印出来:
10946
{0: 1, 1: 1}
为什么即使我将 init 定义为全局变量,它仍然会打印相同的字典?我敢打赌,这是因为 return 声明,但我可能已经穿坏了。
【问题讨论】:
标签: python-3.x dictionary global-variables