Python裝飾器語(yǔ)法糖代碼示例
####裝飾器的固定格式##普通版本def timer(func): def inner(*args,**kwargs): '''執(zhí)行函數(shù)之前要做的''' ret = func(*args,**kwargs) '''執(zhí)行函數(shù)之后要做的''' return ret return inner##wraps版本from functools import wrapsdef deco(func): @wraps(func) #加在最內(nèi)層函數(shù)正上方 def wrapper(*args,**kwargs): return func(*args,**kwargs) return wrapper####帶參數(shù)的裝飾器def outer(flag): def timer(func): def inner(*args,**kwargs): if flag: print('''執(zhí)行函數(shù)之前要做的''') ret = func(*args,**kwargs) if flag: print('''執(zhí)行函數(shù)之后要做的''') return ret return inner return timer@outer(True)def func(): return '返回值'x=func()print(x)總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選