def wrapper(*args, **kwargs)
时间: 2024-11-22 07:28:25 浏览: 6
python函数参数*args**kwargs用法实例
5星 · 资源好评率100%
`wrapper(*args, **kwargs)` 是Python中的一种函数封装技巧,它通常被称为“装饰器”(Decorator)。这里的 `*args` 和 `**kwargs` 分别表示接收任意数量的位置参数(非关键字参数)和关键字参数。`*args` 使用星号(*)来捕获不确定数量的位置参数,而 `**kwargs` 则使用双星号(**)来捕获不定量的关键字参数。
这个函数的作用通常是作为其他函数的包装器,可以在原函数执行前后添加额外的功能,如日志记录、性能分析、输入验证等。调用这样的函数时,你可以传入任意数量的位置参数和关键字参数,这些参数会传递给被装饰的函数。
举个例子:
```python
def log(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__} with args: {args}, kwargs: {kwargs}")
result = func(*args, **kwargs)
print(f"{func.__name__} returned: {result}")
return result
return wrapper
@log
def add(a, b):
return a + b
add(3, 4) # 输出示例:Calling add with args: (3, 4), kwargs: {}, add returned: 7
```
阅读全文