Decoradores en producción: patrones reales en Python
Implementación y análisis de decoradores de producción: caché, timing, logging, retry con backoff, validación de argumentos y registro de rutas en frameworks web.
Implementación y análisis de decoradores de producción: caché, timing, logging, retry con backoff, validación de argumentos y registro de rutas en frameworks web.
Cómo usar una clase con __call__ como decorador para gestionar estado complejo, y cómo decorar clases para modificarlas directamente.
Cómo y por qué los decoradores parametrizados requieren tres niveles de anidación, con alternativas usando clases y partial.
Sin `@wraps`, el wrapper oculta nombre, docstring y anotaciones de la función original; `functools.wraps` los restaura en una línea.
Un decorador es una función que recibe y retorna otra función; `@d` sobre `def f` es exactamente `f = d(f)`, aprovechando que las funciones son objetos de primera clase.
Cómo usar `lru_cache` y `cache` para memoizar funciones puras, manejar argumentos hashables y evitar memory leaks en métodos de instancia.
Cómo usar `partial` para prefijar argumentos, adaptar firmas y crear callables reutilizables sin lambdas opacas.
Qué es una lambda, sus limitaciones de diseño y cómo distinguir los casos donde ayuda de los antipatrones que la convierten en ruido.
Cuándo las funciones de orden superior son idiomáticas y cuándo las comprehensions ganan en claridad; uso correcto de `reduce` y el módulo `operator`.
Cómo `yield from` delega iteración y reenvía send, throw y close al subgenerador activo, y cómo capturar su valor de return.