在呼叫無參裝飾器時,不需要在外層傳遞引數。
適用於例如:
- 為某個函式增加統計執行時間功能
- 為某個函式執行前增加登入認證功能
在呼叫有參裝飾器時,對其傳入乙個或多個引數。
適用於例如:
- 驗證使用者型別
defuser_auth(user_group):
def
def inner(*args, **kwargs):
if user_group == '
svip':
print('
dear svip')
res = func(*args, **kwargs)
return
res
elif user_group == '
general':
res = func(*args, **kwargs)
return
res
else
:
print('
please login first!')
login()
return
inner
return
@user_auth(user_group='
svip')
defwelcome():
print('
welcome to the index')
welcome()
python之有參裝飾器
由於語法糖 的限制,outter函式只能有乙個引數,並且該引數只用來接收被裝飾物件的記憶體位址 def outter func func 函式的記憶體位址 res func args,kwargs return res outter outter outter index def index x,y...
python函式之有參裝飾器
一 為什麼要有有參裝飾器?來看之前的無參裝飾器 無參裝飾器 defoutter func start time.time res func args,kwargs 我們需要乙個變數接受函式的返回值 end time.time print run time is s end start return ...
python中裝飾器
對修改是封閉的,對擴充套件是開放的 import time def f1 print time.time print this is a function.def f2 print this is a function.print time.time f1 def print current tim...