Python3.6中打印时间差总是为0,如果分别打印t1,t2,就正常显示(即加上注释的代码就正常)
import time
from functools import reduce
def performance(f):
def fn(*args, **kw):
t1 = time.time()
#print(t1)
r = f(*args, **kw)
t2 = time.time()
#print(t2)
print ('call %s() in %f s' % (f.__name__, (t2 - t1)))
return r
return fn
@performance
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print(factorial(10))