python之帶有引數的裝飾器

2022-05-13 14:27:11 字數 723 閱讀 6103

乙個小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()

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 飯前洗洗手 呼叫基本...