####裝飾器的固定格式
##普通版本
def timer(func):
def inner(*args,**kwargs):
'''執行函式之前要做的'''
ret = func(*args,**kwargs)
'''執行函式之後要做的'''
return ret
return inner
##wraps版本
from functools import wraps
def deco(func):
@wraps(func) #加在最內層函式正上方
return func(*args,**kwargs)
####帶引數的裝飾器
def outer(flag):
def timer(func):
def inner(*args,**kwargs):
if flag:
print('''執行函式之前要做的''')
ret = func(*args,**kwargs)
if flag:
print('''執行函式之後要做的''')
return ret
return inner
return timer
@outer(true)
def func():
return '返回值'
x=func()
print(x)
Python語法糖 裝飾器
這裡用來記錄python各種甜得發膩的語法糖,以及各種變形用法。太初,神諭 pythonic import light,於是有了光。裝飾器是用來給函式增加新功能的,對於支援高階函式的語言,函式引數直接穿進去就好了。但是python提供了更為優雅的解決方案,只需要乙個 就能搞定。裝飾器函式需要單獨寫出...
Python語法糖 裝飾器
這裡用來記錄python各種甜得發膩的語法糖,以及各種變形用法。太初,神諭 pythonic import light,於是有了光。裝飾器是用來給函式增加新功能的,對於支援高階函式的語言,函式引數直接穿進去就好了。但是python提供了更為優雅的解決方案,只需要乙個 就能搞定。裝飾器函式需要單獨寫出...
Python裝飾器(語法糖)
todo make an order defordering 第一驗證 驗證是否登入 第二驗證 驗證是否具有許可權 print 正在下訂單 todo change password defchangepwd 第一驗證 驗證是否登入 第二驗證 驗證是否具有許可權 print 修改密碼 todo sho...