簡單
def
set_level
(level)
:def
set_func
(func)
:def
call_func
(*args,
**kwargs)
:if level ==1:
print
('--許可權驗證級別為1,驗證通過'
)elif level ==5:
print
('--許可權驗證級別為5,驗證通過'
)return func(
)return call_func
return set_func
# 只要裝飾器後面傳入了實參。就相當於執行了兩個步驟:
# 1.呼叫set_level函式並且將 1 當做實參傳遞
# 2.用上一步呼叫的返回值即: return set_func 返回了set_func的函式引用,當做裝飾器對test1函式進行裝飾
@set_level(1)
deftest1()
:'''執行該函式前需要驗證許可權功能是否達到許可權級別1'''
print
('----test1----'
)return
'ok'
@set_level(5)
deftest2()
:'''執行該函式前需要驗證許可權功能是否達到許可權級別5'''
print
('---test2---'
)return
'ok'
test1(
)test2(
)
Python 裝飾器,帶有引數的裝飾器
demo.py 裝飾器,帶引數的裝飾器 def set level level num def set func func def call func args,kwargs if level num 1 print 許可權級別1,驗證 elif level num 2 print 許可權級別2,驗...
python 通用裝飾器,帶有引數的裝飾器,
使用裝飾器對有返回值的函式進行裝飾 def func functionname print func 1 def func in print func in 1 x functionname 儲存返回來的hahah print func in 2 return x print func 2 retu...
python之帶有引數的裝飾器
乙個小demo def set level level num defset func func def call func args,kwargs if level num 1 print 許可權級別1,驗證 elif level num 2 print 許可權級別2,驗證 return func...