Хотя мне нравится думать о себе как о достаточно компетентном кодере Python, одним из аспектов языка, который мне никогда не удавалось, являются декораторы.
Я знаю, что они (поверхностно), я прочитал учебники, примеры, вопросы по переполнению стека, и я понимаю синтаксис, могу написать свой, иногда использовать @classmethod и @staticmethod, но мне никогда не приходит в голову использовать декоратор, чтобы решить проблему в моем собственном коде Python. Я никогда не сталкиваюсь с проблемой, когда думаю: «Хм ... это похоже на работу декоратора!»
Итак, мне интересно, если вы, ребята, могли бы предложить несколько примеров, где вы использовали декораторы в своих собственных программах, и, надеюсь, у меня будет "А-ха!" момент и получить их.
functools.lru_cache
который делает именно то, что сказал Питер, начиная с Python 3.2, выпущенного в феврале 2011 года.