导语:
本文主要介绍了关于python带参数的装饰器怎么写?的相关知识,希望可以帮到处于编程学习途中的小伙伴
1、装饰器说明
装饰器似乎没有任何参数(用@装饰的方法作为隐式参数传递给装饰器)。但是,有时候让装饰器带上一些参数可以提供更灵活的应用。
2、实例
我们重写 requires_ints 来限制装饰函数的参数数量:
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带参数装饰器的写法,希望对大家有所帮助,更多知识尽在python学习网。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中使用pip09/15
- ♥ python如何截取数组的前几位08/19
- ♥ 如何在 Python 3.8 中编写数字猜谜游戏11/09
- ♥ python如何测试程序11/05
- ♥ python默认参数的使用方法01/05
- ♥ 如何在python中添加库08/24
内容反馈