装饰器是Python中强大的函数增强工具,允许你无需修改原函数代码即可添加额外功能。常用于日志、权限验证、性能监控等场景。
📌 核心用法
- 语法糖:通过
@decorator
简化装饰器应用 - 函数包装:动态修改函数行为
- 元编程:实现类方法、静态方法等特性
📚 典型应用场景
- ⏱️ 性能测试:
@timeit
记录函数执行时间 - 🔒 权限验证:
@login_required
控制访问 - 📝 日志记录:
@log
记录调用信息 - 🧠 缓存优化:
@cache
存储重复计算结果
🧩 装饰器结构示例
def decorator(func):
def wrapper(*args, **kwargs):
# 前置操作
result = func(*args, **kwargs)
# 后置操作
return result
return wrapper
@decorator
def target_function():
pass
📖 深入学习推荐
🔗 Python高级编程技巧 会深入讲解装饰器的进阶用法,包括类装饰器和多重装饰器的组合应用。
📌 小贴士:使用
functools.wraps
可保持被装饰函数的元信息完整
⚠️ 注意事项
- 避免破坏原函数的
__name__
和__doc__
- 装饰器参数需谨慎处理
- 注意装饰器的执行顺序(从下往上)
实践建议:尝试用装饰器实现一个简单的计数器功能,观察其对函数调用的影响 🚀