Sementara saya suka menganggap diri saya sebagai pembuat kode Python yang cukup kompeten, salah satu aspek dari bahasa yang saya tidak pernah bisa grok adalah dekorator.
Saya tahu apa itu (secara dangkal), saya sudah membaca tutorial, contoh, pertanyaan tentang Stack Overflow, dan saya mengerti sintaksnya, bisa menulis sendiri, kadang-kadang menggunakan @classmethod dan @staticmethod, tetapi tidak pernah terpikir oleh saya untuk menggunakan dekorator untuk memecahkan masalah dalam kode Python saya sendiri. Saya tidak pernah menemukan masalah di mana saya berpikir, "Hmm ... ini terlihat seperti pekerjaan untuk dekorator!"
Jadi, saya bertanya-tanya apakah kalian mungkin menawarkan beberapa contoh di mana Anda telah menggunakan dekorator dalam program Anda sendiri, dan mudah-mudahan saya akan memiliki "A-ha!" saat dan mendapatkannya .
functools.lru_cache
,, yang melakukan persis apa yang Peter katakan, sejak Python 3.2, dirilis pada Februari 2011.