【发布时间】:2016-01-24 17:45:37
【问题描述】:
我有一个简单的斐波那契函数,它使用记忆,它本身就可以正常工作。但是,当我想使用 timeit 计时时,我得到“NameError: global name 'memo' is not defined”,即使它是。
#!/usr/bin/python
import sys
import timeit
memo = [0] * 100
def fibmem(n,memo):
#function things
for x in range(1,40):
mytime2 = timeit.Timer('fibmem('+str(x)+', memo)','from __main__ import fibmem')
delta2 = mytime2.timeit(1)
print str(x) + ' ' +str(delta2)
memo[:] = []
我已经尝试查找它可能是什么,但大多数答案都包括from __main__ import,这不是问题所在。我确信它仍然与范围界定有关,但我对 timeit 很陌生,所以我不知道。
【问题讨论】:
标签: python scope global nameerror timeit