Хоча мені подобається думати про себе як про грамотно розробленому Python-кодері, одним із аспектів мови, який я ніколи не вдавався виправити, є декоратори.
Я знаю, що вони (поверхово), я читав підручники, приклади, запитання щодо переповнення стека, і я розумію синтаксис, можу писати власний, періодично використовувати @classmethod і @staticmethod, але мені ніколи не трапляється використовувати декоратор для вирішення проблеми в моєму власному коді Python. Я ніколи не стикаюся з проблемою, де думаю: "Гм ... це схоже на роботу декоратора!"
Тож мені цікаво, чи можете ви, хлопці, запропонувати кілька прикладів того, де ви використовували декораторів у власних програмах, і, сподіваюся, у мене буде "А-ха!" момент і дістати їх.
functools.lru_cache
який робить саме те, що сказав Петро, оскільки Python 3.2 вийшов у лютому 2011 року.