python帶參數的裝飾器怎么寫?
python帶參數的裝飾器怎么寫?
1、裝飾器說明
裝飾器看上去并沒有任何參數(使用@時被裝飾的方法作為隱式參數傳遞給裝飾器)。但是,有時候讓裝飾器自帶一些參數,可以提供更靈活的應用。
2、實例
我們改寫requires_ints,使其還可以限制被裝飾函數的參數的數量:
fromfunctoolsimportwraps
defrequires_ints(count=0):
defdecorator(func):
@wraps(func)
defwrapper(*args,**kwargs):
values=[iforiinkwargs.values()]
args_list=list(args)+[iforiinkwargs.values()]
ifcount==0:
#Notlimit
pass
eliflen(args_list)>count:
raiseException(f'Thenumberofargumentscannotmorethan{count}')
forarginargs_list:
ifnotisinstance(arg,int):
raiseTypeError('Onlyacceptintegers.')
returnfunc(*args,**kwargs)
returnwrapper
returndecorator
@requires_ints(5)
defadd(*args):
'''Returnthesumofallarguments'''
returnsum(args)
以上就是python帶參數裝飾器的寫法,希望能對大家有所幫助,更多Python學習教程請關注IT培訓機構:千鋒教育。

相關推薦HOT
更多>>
python包的導入方式有幾種
python包的導入方式有幾種本文教程操作環境:windows7系統、Python3.9.1,DELLG3電腦。1、from...import導入frompackageimportmodule1,mo詳情>>
2023-11-08 23:58:44
python參數是什么
python參數是什么1、概念Python中函數的參數是不變的對象。Python函數具有靈活的參數形式,但默認參數必須指向不變的對象。如果默認參數是可變...詳情>>
2023-11-08 19:48:30
python使用items()遍歷鍵值對
python使用items()遍歷鍵值對字典可以用來存儲各種方式的信息,所以有很多方式可以通過字典的所有鍵值對、鍵或值。說明1、即使通過字典,鍵值對...詳情>>
2023-11-08 19:23:48
python按行讀取文件的方法比較
python按行讀取文件的方法比較1、read方法默認會把文件的所有內容一次性讀取到內存。如果文件太大,對內存的占用會非常嚴重2、readline方法,re...詳情>>
2023-11-08 18:22:27