Python 装饰器实战指南
一、什么是装饰器
装饰器是 Python 中强大的工具,允许在不修改原函数代码的情况下添加新功能。
二、基础示例
def my_decorator(func):
def wrapper():
print("执行前")
func()
print("执行后")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
三、计时装饰器
import time
from functools import wraps
def timer(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"执行时间:{end-start:.4f}秒")
return result
return wrapper
四、缓存装饰器
from functools import lru_cache
@lru_cache(maxsize=128)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
五、总结
装饰器让代码更简洁可维护,建议使用@wraps 保留元信息。