Bien que j'aime à me considérer comme un codeur Python raisonnablement compétent, un des aspects du langage que je n'ai jamais réussi à comprendre est celui des décorateurs.
Je sais ce que c'est (superficiellement), j'ai lu des tutoriels, des exemples, des questions sur Stack Overflow, et je comprends la syntaxe, je peux écrire la mienne, parfois utiliser @classmethod et @staticmethod, mais il ne m'est jamais venu à l'esprit d'utiliser un décorateur pour résoudre un problème dans mon propre code Python. Je ne rencontre jamais un problème où je pense, "Hmm ... cela ressemble à un travail pour un décorateur!"
Donc, je me demande si vous pourriez offrir des exemples où vous avez utilisé des décorateurs dans vos propres programmes, et j'espère que j'aurai un "A-ha!" moment et les obtenir .
functools.lru_cache
, qui fait exactement ce que Peter a dit, depuis Python 3.2, sorti en février 2011.