Декораторы
Декоратор оборачивает функцию, добавляя ей поведение снаружи, без изменения её кода
Это один из самых частых паттернов в реальном Python - логирование, тайминг, кэширование (тот же
functools.lru_cache из прошлой статьи - тоже декоратор), retry, а библиотеки вроде click
строят на декораторах всю свою публичную обёртку
Презентация
??