python装饰器@
时间: 2024-04-24 13:20:38 浏览: 126
Python装饰器是一种用于修改函数或类的行为的特殊语法。它们允许在不修改原始代码的情况下,通过将函数或类作为参数传递给另一个函数来添加额外的功能。
装饰器使用@符号将其应用于函数或类。当调用被装饰的函数或创建被装饰的类的实例时,装饰器会在原始函数或类之前或之后执行一些额外的代码。
装饰器可以用于各种场景,例如:
- 记录日志
- 计时函数执行时间
- 验证用户权限
- 缓存函数结果
- 异常处理等
下面是一个简单的装饰器示例,用于记录函数的执行时间:
```python
import time
def timer_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"函数 {func.__name__} 的执行时间为:{end_time - start_time} 秒")
return result
return wrapper
@timer_decorator
def my_function():
# 函数的具体实现
pass
my_function()
```
在上面的示例中,`timer_decorator` 是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数 `wrapper`。`wrapper` 函数在调用原始函数之前和之后记录了执行时间。
阅读全文