Embora eu goste de me considerar um codificador Python razoavelmente competente, um aspecto da linguagem que nunca consegui entender são os decoradores.
Sei o que são (superficialmente), li tutoriais, exemplos, perguntas sobre o Stack Overflow e entendo a sintaxe, posso escrever minha própria, ocasionalmente use @classmethod e @staticmethod, mas nunca me ocorre usar um decorador para resolver um problema no meu próprio código Python. Nunca encontro um problema em que penso: "Hmm ... isso parece um trabalho para um decorador!"
Então, eu estou querendo saber se vocês podem oferecer alguns exemplos de onde você usou decoradores em seus próprios programas, e espero ter um "A-ha!" momento e obtê- los.
functools.lru_cache
que faz exatamente o que Pedro disse, desde Python 3.2, lançado em fevereiro de 2011.