Python裝飾器語法糖
阿新 • • 發佈:2019-01-07
####裝飾器的固定格式 ##普通版本 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) #加在最內層函式正上方 def wrapper(*args,**kwargs): return func(*args,**kwargs) return wrapper ####帶引數的裝飾器 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)