这是计算斐波那契的代码
import timeit
counter=0
def fibhelper(n):
global counter
counter+=1
if n==0 :
return 0
elif n==1:
return 1
else:
return fibhelper(n-1)+fibhelper(n-2)
print fibhelper(20)
print "Total function calls-- ",counter
t1=timeit.Timer('fibhelper(20)',"from __main__ import fibhelper")
y=t1.timeit()
print "normal method in secs: ",y
输出是:
6765
Total function calls-- 21891
立即出现,但仍在计算y
。为什么是这样?在快速评估function
时,为什么timeit
的{{1}}需要更长的时间?
答案 0 :(得分:3)
timeit
的默认参数包括:number=1000000
。
引用timeit
的文档:
...使用
timeit()
执行时运行number
方法。
因此,预计需要100万倍。