decorator函数
时间: 2023-10-18 15:42:48 浏览: 47
装饰器函数(Decorator Function)是Python中一种特殊的函数,它可以用来修改其他函数的行为、功能或属性,而无需直接修改这些函数的源代码。装饰器函数本质上是一个高阶函数,它接受一个函数作为参数,并返回一个新的函数。
装饰器函数通常用于在不改变原函数定义的情况下,为其添加额外的功能或修改其行为。它可以在函数执行前后进行一些操作,例如记录日志、验证参数、缓存结果等。装饰器函数可以在函数定义之前使用 `@` 符号进行声明,以便将其应用于目标函数。
下面是一个简单的装饰器函数的示例:
```python
def decorator_function(func):
def wrapper(*args, **kwargs):
# 在函数执行前进行操作
print("Before function execution")
# 调用被装饰的函数
result = func(*args, **kwargs)
# 在函数执行后进行操作
print("After function execution")
# 返回结果
return result
return wrapper
@decorator_function
def target_function():
print("Target function execution")
# 调用被装饰的函数
target_function()
```
在上面的示例中,`decorator_function` 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 `wrapper`。`wrapper` 函数在被装饰的函数执行前后分别输出一些信息。通过在 `target_function` 函数定义前使用 `@decorator_function`,将装饰器函数应用于目标函数。
当调用 `target_function()` 时,实际上是执行了 `decorator_function(target_function)`,返回了一个新的函数 `wrapper`。这个新函数在执行之前输出 "Before function execution",然后调用被装饰的函数 `target_function`,再在执行之后输出 "After function execution"。最后返回的结果与原函数保持一致。
这只是一个简单的装饰器函数示例,实际应用中装饰器函数可以实现更复杂的功能,例如参数校验、性能分析、身份验证等。装饰器函数为代码的重用和扩展提供了一种优雅而灵活的方式。