img*_*mad 0 python scope global timeit nameerror
我有一个简单的Fibonacci函数,它使用memoisation,它本身就可以正常工作.但是,当我想使用timeit计时时,我得到"NameError:全局名称'备忘录'未定义",即使它是.
#!/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[:] = []
Run Code Online (Sandbox Code Playgroud)
我已经尝试过查找它可能是什么,但大多数答案涉及到包括from __main__ import,这不是问题.我确定它仍然与范围有关,但我对时间非常新,所以我不知道.
添加memo到从__main__以下位置导入的变量列表:
mytime2 = timeit.Timer('fibmem({}, memo)'.format(x),'from __main__ import fibmem, memo')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
868 次 |
| 最近记录: |