Python中的装饰器是什么?它能实现什么样的功能?
时间: 2024-10-19 16:10:58 浏览: 13
python装饰器深入学习
Python中的装饰器是一种特殊的函数,它们允许你在不改变原函数源代码的情况下,增加额外的功能或修改其行为。装饰器本质上就是一个接受函数作为输入,并返回一个新的函数的高阶函数。它们通常应用于函数定义之前,用 `@decorator_name` 的语法形式。
装饰器能够实现的功能包括但不限于:
1. **日志记录**:在函数运行前后添加日志信息,便于追踪程序执行过程。
2. **性能分析**:插入测量代码,统计函数的执行时间。
3. **权限控制**:检查用户权限或请求有效性,根据需要决定是否允许函数执行。
4. **缓存结果**:对于计算密集型函数,可以将其结果存储起来避免重复计算。
5. **输入验证**:对函数参数进行预处理或错误检查。
举个例子,一个简单的计时装饰器可以像这样编写:
```python
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"{func.__name__} took {end - start} seconds")
return result
return wrapper
@timer
def my_function():
# 函数体...
my_function()
```
阅读全文