在這個表示使用時間的裝飾器里, print 'call %s() in %fs' % (f.__name__, (t2 - t1))的意思,求詳細解釋……
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)
2015-03-06
%是格式化的意思,%s是格式化字符串,%f是格式化浮點數,這句話的意思是把f.__name__插入到了%s這個位置,(t2-t1)計算后的值插入到了%f這個位置