Decorator Patterns Summary
Common decorator patterns: logging, caching, timing, retry, validation, authentication, and rate limiting. Decorators separate cross-cutting concerns from business logic.
Common decorator patterns: logging, caching, timing, retry, validation, authentication, and rate limiting. Decorators separate cross-cutting concerns from business logic.
# Authentication decorator
def require_auth(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
if not current_user.is_authenticated:
raise PermissionError("Login required")
return func(*args, **kwargs)
return wrapper
@require_auth
def delete_user(user_id):
# Only runs if authenticated
pass
Decorators shine for cross-cutting concerns — logic that many functions share.