Mentre mi piace pensare a me stesso come un programmatore Python ragionevolmente competente, un aspetto del linguaggio che non sono mai stato in grado di comprendere è il decoratore.
So cosa sono (superficialmente), ho letto tutorial, esempi, domande su Stack Overflow e capisco la sintassi, posso scrivere il mio, ogni tanto uso @classmethod e @staticmethod, ma non mi viene mai in mente di usare un decoratore per risolvere un problema nel mio codice Python. Non ho mai riscontrato un problema in cui penso "Hmm ... questo sembra un lavoro per un decoratore!"
Quindi, mi chiedo se voi ragazzi potreste offrire alcuni esempi di dove avete usato decoratori nei vostri programmi, e spero che avrò un "A-ha!" momento e ottenerli .
functools.lru_cache
, che fa esattamente quello che ha detto Peter, dal Python 3.2, rilasciato nel febbraio 2011.