有人帮我分析一下装饰器吗?
from functools import reduce
def log(f):
def fn(x):
print ('call '+ f.__name__ + '()...')
return f(x)
return fn
@log
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))
print (factorial(10))
小白一个,本来函数就懵懵懂懂,看到装饰器更懵了,为什么Log里的return 值我都看不懂。。。