复制
收藏
提问
简洁
写代码举例说明带参数的装饰器
0秒前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
带参数的装饰器是一种高级技术,它允许装饰器根据传入的参数定制化其行为。以下是一个简单的带参数装饰器的示例:
# 定义带参数的装饰器工厂函数
def repeat(num_repeats):
def decorator_repeat(func):
def wrapper(*args, **kwargs):
for _ in range(num_repeats):
value = func(*args, **kwargs)
return value
return wrapper
return decorator_repeat
# 使用带参数的装饰器
@repeat(num_repeats=3)
def greet(name):
print(f"Hello, {name}!")
# 调用装饰过的函数
greet("World")
在这个例子中,repeat
是一个装饰器工厂函数,它接受一个参数 num_repeats
,这个参数指定了被装饰函数应该被重复执行的次数。decorator_repeat
是由 repeat
返回的装饰器,它接受一个函数 func
并返回一个新的函数 wrapper
。wrapper
函数将 func
重复执行 num_repeats
次,并返回最后一次执行的结果。使用 @repeat(num_repeats=3)
语法将 greet
函数装饰,使其打印三次问候语。3
你觉得结果怎么样?