乙個小demo
defset_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()
return
call_func
return
set_func
#帶有引數的裝飾器裝飾過程分為2步:
#1. 呼叫set_level函式,把1當做實參
#2. set_level返回乙個裝飾器的引用,即set_func
#3. 用返回的set_func對test1函式進行裝飾(裝飾過程與之前一樣)
@set_level(1)
deftest1():
print("
-----test1---")
return"ok
"@set_level(2)
deftest2():
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 裝飾器 第七步 帶有引數的裝飾器
第七步 帶有引數的裝飾器 兩個基本函式用同乙個裝飾器裝飾 defouter arg print arg 這是裝飾器的 defkuozhan func print func func接收的依然是eat和chifan 未來的eat函式 defneweat 擴充套件功能1 print 飯前洗洗手 呼叫基本...