未使用 timeit 定义全局名称"x"



我有一个简单的斐波那契函数,它使用记忆,它本身工作得很好。但是,当我想使用 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[:] = []

我尝试查找它可能是什么,但大多数答案都涉及包括from __main__ import,这不是这里的问题。我确定这仍然与范围界定有关,但我对时间非常陌生,所以我不知道。

memo添加到从__main__导入的变量列表中:

mytime2 = timeit.Timer('fibmem({}, memo)'.format(x),'from __main__ import fibmem, memo')

相关内容

  • 没有找到相关文章

最新更新