當(dāng)希望增加函數(shù)功能掰茶,同時(shí)又不改變函數(shù)定義的情況下没佑,可以使用裝飾器(decorator)百姓。
import time, functools
def printTime(text):#裝飾器自定義文字楣颠,這句可選
def decorator(func):#將函數(shù)作為參數(shù)傳入裝飾器
@functools.wraps(func)#確保函數(shù)本身屬性不變笛洛,固定寫(xiě)法
def log(*args, **kw):#自定義裝飾器函數(shù)夏志,參數(shù)不固定可以適配任意函數(shù)
print("%s%s%s" % (func.__name__, text, time.time()))#打印函數(shù)執(zhí)行時(shí)間
return func(*args, **kw)
return log
return decorator
@printTime('fast執(zhí)行時(shí)間是')#裝飾器調(diào)用
def fast(x, y):
return x + y
f = fast(11, 22)
print(f)
-----------------------執(zhí)行結(jié)果-------------------------
fastfast執(zhí)行時(shí)間是1544147487.86
33