掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
1、裝飾器說明

裝飾器看上去并沒有任何參數(shù)(使用 @ 時(shí)被裝飾的方法作為隱式參數(shù)傳遞給裝飾器)。但是,有時(shí)候讓裝飾器自帶一些參數(shù),可以提供更靈活的應(yīng)用。
2、實(shí)例
我們改寫 requires_ints,使其還可以限制被裝飾函數(shù)的參數(shù)的數(shù)量:
from functools import wraps
def requires_ints(count=0):
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
values = [i for i in kwargs.values()]
args_list = list(args) + [i for i in kwargs.values()]
if count == 0:
# Not limit
pass
elif len(args_list) > count:
raise Exception(f'The number of arguments cannot more than {count}')
for arg in args_list:
if not isinstance(arg, int):
raise TypeError('Only accept integers.')
return func(*args, **kwargs)
return wrapper
return decorator
@requires_ints(5)
def add(*args):
'''Return the sum of all arguments'''
return sum(args)以上就是python帶參數(shù)裝飾器的寫法,希望能對(duì)大家有所幫助,更多知識(shí)盡在python學(xué)習(xí)網(wǎng)。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流