Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Декораторы в языке Python
Перед прочтением данной статьи рекомендую прочесть следующую
Сегодня говорим о декораторах. Суть декоратора заключается в том, чтобы не трогая функцию (например не имея доступа к тексту функции) дополнить ее или заменить. Вы скажете, что это просто. В принципе да, просто декоратор выводит нас в область другой парадигмы, парадигмы функционального программирования.
И так у нас есть простая функция func2() (см. ниже). Сконструируем для нее декоратор - функция func1() с вложенной функцией fnc2(). Да, вложенные функции используются не так часто, ну вот как раз при конструировании декораторов.
Результат выполнения программы
Код перед выполнением функции
Функция func2
Код после выполнения функции
Если у декорируемой функции есть параметры, то все решается довольно просто.
Результат выполнения программы
Код перед выполнением функции
Функция func2, с декоратором
Код после выполнения функции
Рассмотрим теперь как проблема решается с помощью декоратора
Или декоратор для функции с параметром
вот теперь самое интересное. Вложенные декораторы
Результат выполнения программы
Код перед выполнением функции 2
Код перед выполнением функции
Функция func2, с декоратором
Код после выполнения функции
Код после выполнения функции 2
Понятно, что функцию можно задекорировать так, что она совсем не будет вызываться. Но это уже зависит от того, что требуется для решения конкретной задачи.
Ну что же, про декораторы пока всё.
Об использовании декораторов см.
и здесь
Пишите свои предложения и замечания и занимайтесь программированием, хотя бы для поддержания уровня интеллекта.