新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python帶參數(shù)的裝飾器怎么寫?
1、裝飾器說明

裝飾器看上去并沒有任何參數(shù)(使用 @ 時被裝飾的方法作為隱式參數(shù)傳遞給裝飾器)。但是,有時候讓裝飾器自帶一些參數(shù),可以提供更靈活的應(yīng)用。
2、實例
我們改寫 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ù)裝飾器的寫法,希望能對大家有所幫助,更多知識盡在python學(xué)習(xí)網(wǎng)。
分享文章:創(chuàng)新互聯(lián)Python教程:python帶參數(shù)的裝飾器怎么寫?
URL分享:http://m.fisionsoft.com.cn/article/dpeiigo.html


咨詢
建站咨詢
