import time
def performance(f):
def fn(*args, **kw):
t1 = time.time()
r = f(*args, **kw)
t2 = time.time()
print 'call %s() in %fs' % (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)
print语句里是什么意思啊
追答'call %s() in %fs'是格式字符串,%s是参数待替换的位置
(f.__name__, (t2 - t1))是格式字符串传入的参数,参数用一个元组来表示
中间的%是分隔符
f.__name__:__name__是一个特殊方法,存储的是函数的名称,每一个函数都会自动有这个方法
装饰器这儿感觉好难理解。。。。