装饰器进阶与设计模式
装饰器
装饰器是Python中最优雅的特性之一,它体现了"开放-封闭原则"的精髓:对扩展开放,对修改封闭。在企业级应用中,如Flask的路由装饰器到Django的权限装饰器、缓存、日志、性能监控、事务管理。
应用实例
# 在微服务架构中,装饰器承担着重要角色
@app.route('/api/users/<int:user_id>')
@require_auth
@rate_limit(requests_per_minute=100)
@cache(expire=300)
@monitor_performance
@log_request
def get_user(user_id):return User.objects.get(id=user_id)# 这个简单的函数通过装饰器获得了:
# - 路由映射
# - 身份验证
# - 限流保护
# - 缓存加速
装饰器的高级用法与内部机制
装饰器的执行时机与作用域
import functools
import timeclass DecoratorInternals:"""装饰器内部机制深度解析"""@staticmethoddef execution_timing_demo():"""演示装饰器的执行时机"""print("=== 装饰器执行时机演示 ===")# 装饰器在模块导入时执行