这段代码的执行顺序为什么是这样的?
import time
def performance(unit):
def fn(f):
def fn1(*args, **kw):
print unit
r = f(*args, **kw)
print unit
return r
return fn1
return fn
@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print factorial(10)
执行结果:
ms
ms
3628800