Python装饰器的深入理解及使用
装饰器是 Python 中一个强大的特性,它允许我们在不修改原函数代码的情况下,为其添加新的功能或行为。
基本概念:
- 装饰器是一个返回函数的对象。
- 原函数(被装饰对象)通过@装饰器名的方式引用。
使用示例:
- 日志记录装饰器:
```python
import logging
def logdecorator(func):
def wrapper(args, *kwargs):
logging.info(f”Calling function: {func._name}”)
return func(args, *kwargs))
return wrapper
@log_decorator
def say_hello(name=”World”):
print(f”Hello, {name}!”)
say_hello() # 输出:[INFO] Calling function: say_hello
2. **缓存装饰器**:
```python
from functools import lru_cache
@lru_cache(maxsize=10) # 设置缓存最大容量
def expensive_function(n):
time.sleep(1) # 模拟耗时操作
return n * n
# 计算5的平方,先从缓存中获取结果
result = expensive_function(5)
print(result) # 输出:[INFO] Cache hit. Result: 25
以上例子展示了装饰器的基本用法。装饰器在 Python 中的应用非常广泛,如性能测试、日志记录、权限控制等场景都可以借助装饰器来实现。
还没有评论,来说两句吧...