python函数wrapper
时间: 2024-09-26 21:04:42 浏览: 106
Python函数式编程实例详解
在Python中,函数wrapper是一种常见的设计模式,它是指创建一个新的函数,这个新函数会包装、增强或改变原始函数的行为。通常,wrapper函数会在执行原函数前后添加一些额外的操作,比如日志记录、性能测量、输入验证等。
举个例子,如果你想在每个函数调用前打印一条消息,你可以定义一个wrapper函数:
```python
def logging_wrapper(original_function):
def wrapper(*args, **kwargs):
print(f"Calling {original_function.__name__}...")
result = original_function(*args, **kwargs)
print(f"{original_function.__name__} returned {result}")
return result
return wrapper
@logging_wrapper
def add(a, b):
return a + b
add(2, 3) # 输出类似 "Calling add..." 和 "add returned 5"
```
在这个例子中,`logging_wrapper`就是一个函数wrapper,它接受一个函数作为参数并返回一个新的函数。当我们使用`@logging_wrapper`装饰`add`函数时,实际上是将`add`函数传递给了`logging_wrapper`,使其包裹了原函数的行为。
阅读全文