У меня есть простая функция Фибоначчи, которая использует запоминание и отлично работает сама по себе. Однако, когда я хочу отсчитать время с помощью timeit, я получаю «NameError: глобальное имя 'memo' не определено», хотя это так.
#!/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, поэтому понятия не имею.