python帶參數(shù)的裝飾器怎么寫?
1、裝飾器說明
裝飾器看上去并沒有任何參數(shù)(使用@時被裝飾的方法作為隱式參數(shù)傳遞給裝飾器)。但是,有時候讓裝飾器自帶一些參數(shù),可以提供更靈活的應用。
2、實例
我們改寫requires_ints,使其還可以限制被裝飾函數(shù)的參數(shù)的數(shù)量:
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帶參數(shù)裝飾器的寫法,希望能對大家有所幫助,更多Python學習教程請關注IT培訓機構:千鋒教育。