python装饰器的用法
时间: 2023-07-22 08:01:12 浏览: 46
Python装饰器是一种高级的编程技巧,它可以用于修改函数或类的行为,而无需对它们本身进行修改。装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数或类。
装饰器的使用方式是通过在函数或类的定义前使用 `@装饰器函数名` 的语法糖来应用装饰器。下面是一个简单的示例,展示了装饰器的基本用法:
```python
def decorator_function(func):
def wrapper(*args, **kwargs):
# 在函数调用前添加额外的逻辑
print("Before function call")
# 调用原函数
result = func(*args, **kwargs)
# 在函数调用后添加额外的逻辑
print("After function call")
return result
return wrapper
@decorator_function
def my_function():
print("Inside my_function")
# 调用经过装饰器修饰后的函数
my_function()
```
在上面的示例中,`decorator_function` 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 `wrapper`。新的函数 `wrapper` 在调用原函数之前和之后添加了额外的逻辑。通过在 `my_function` 的定义前使用 `@decorator_function`,我们将 `decorator_function` 应用到了 `my_function` 上。
当我们调用 `my_function` 时,实际上是调用了经过装饰器修饰后的 `wrapper` 函数。这样,我们就可以在函数调用前后执行额外的操作。
装饰器的应用场景非常广泛,可以用于函数的日志记录、性能分析、输入参数验证、缓存、权限校验等。它使得我们可以在不修改原函数代码的情况下,对函数的行为进行定制和扩展。