Si bien me gusta pensar en mí mismo como un codificador de Python razonablemente competente, un aspecto del lenguaje que nunca he podido entender son los decoradores.
Sé cuáles son (superficialmente), he leído tutoriales, ejemplos, preguntas sobre Stack Overflow, y entiendo la sintaxis, puedo escribir la mía, ocasionalmente uso @classmethod y @staticmethod, pero nunca se me ocurre usar un decorador para resolver un problema en mi propio código Python. Nunca encuentro un problema en el que pienso, "Hmm ... ¡esto parece un trabajo para un decorador!"
Entonces, me pregunto si ustedes podrían ofrecer algunos ejemplos de dónde han usado decoradores en sus propios programas, y espero tener un "¡A-ha!" momento y conseguirlos .
functools.lru_cache
, que hace exactamente lo que Peter dijo, desde Python 3.2, lanzado en febrero de 2011.