写一个python的有参装饰器源码
时间: 2024-04-21 15:23:17 浏览: 61
python 装饰器(示例)
当然,我可以为您提供一个简单的Python有参装饰器的源码示例:
```python
def repeat(num_times):
def decorator(func):
def wrapper(*args, **kwargs):
for _ in range(num_times):
result = func(*args, **kwargs)
return result
return wrapper
return decorator
# 示例函数
@repeat(num_times=3)
def greet(name):
print(f"Hello, {name}!")
# 调用示例函数
greet("Alice")
```
在上述示例中,`repeat` 是一个有参装饰器,它接受一个参数 `num_times`,用于指定函数被重复执行的次数。装饰器函数 `decorator` 接受被装饰的函数 `func` 作为参数,并返回一个包装函数 `wrapper`。在包装函数中,我们使用 `for` 循环将被装饰的函数执行 `num_times` 次。
在示例中,我们使用 `@repeat(num_times=3)` 来装饰 `greet` 函数,这意味着 `greet` 函数将会被重复执行 3 次。最终调用 `greet("Alice")` 时,"Hello, Alice!" 将被打印出来三次。
请注意,这只是一个简单的有参装饰器示例,实际应用中可以根据需求进行更复杂的逻辑处理。装饰器提供了一种灵活的方式来修改或扩展函数的行为,可以用于各种场景,如日志记录、性能分析、缓存等。
阅读全文