装饰器是Python中强大的函数增强工具,允许你无需修改原函数代码即可添加额外功能。常用于日志、权限验证、性能监控等场景。

📌 核心用法

  • 语法糖:通过 @decorator 简化装饰器应用
  • 函数包装:动态修改函数行为
  • 元编程:实现类方法、静态方法等特性

📚 典型应用场景

  1. ⏱️ 性能测试:@timeit 记录函数执行时间
  2. 🔒 权限验证:@login_required 控制访问
  3. 📝 日志记录:@log 记录调用信息
  4. 🧠 缓存优化:@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__
  • 装饰器参数需谨慎处理
  • 注意装饰器的执行顺序(从下往上)
装饰器执行顺序

实践建议:尝试用装饰器实现一个简单的计数器功能,观察其对函数调用的影响 🚀