Курс Python → Декораторы в Python

Декораторы в Python — это мощный инструмент, который позволяет изменять поведение функций без изменения их исходного кода. Они позволяют добавлять дополнительную функциональность к существующим функциям, не затрагивая их основной логики. Декораторы реализуются в виде обычных функций, которые принимают другую функцию в качестве аргумента и возвращают новую функцию.

Для использования декораторов в Python необходимо определить функцию-декоратор, которая будет принимать функцию в качестве аргумента и возвращать новую функцию, изменяющую поведение оригинальной. Декораторы могут быть использованы для различных целей, таких как логирование, кэширование, проверка аргументов и многое другое.


def my_decorator(func):
    def wrapper():
        print("Дополнительный код до выполнения функции")
        func()
        print("Дополнительный код после выполнения функции")
    return wrapper

@my_decorator
def say_hello():
    print("Привет, мир!")

say_hello()

В данном примере мы определяем декоратор my_decorator, который добавляет дополнительный код до и после выполнения функции say_hello. При вызове say_hello() будет выводиться текст «Дополнительный код до выполнения функции», затем «Привет, мир!» и в конце «Дополнительный код после выполнения функции». Это демонстрирует, как декораторы могут изменять поведение функций.

Использование декораторов делает код более читаемым и модульным, позволяя разделить основную логику функции от дополнительной функциональности. Это позволяет избежать дублирования кода и упрощает его поддержку и расширение. Декораторы — это важная часть парадигмы программирования на Python и позволяют писать более гибкий и эффективный код.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Множественное присваивание в Python
  2. Установка и использование pyshorteners
  3. Оператор del в Python
  4. Оператор zip в Python
  5. Разделение функций на этапы
  6. Обработка элементов в Python
  7. Многострочные строки в Python
  8. Логирование с Loguru
  9. Выход из профиля в Django
  10. Управление виртуальными средами в Python
  11. Добавление элементов в список: append() vs extend()
  12. Оптимизация методов в Python 3.7
  13. Списки в Python: синтаксис представления
  14. Создание коллекций из выражения-генератора
  15. Оператор * в Python
  16. Форматирование строк в Python
  17. Декораторы в Python
  18. Оценка выражений генератора в Python
  19. Сортировка и обратный порядок
  20. Метод rlshift для битового сдвига
  21. Создание Telegram-бота на Python
  22. Работа с timedelta
  23. Область видимости переменных
  24. Удаление элементов по срезу
  25. Получение атрибутов и методов класса
  26. Основы слова
  27. Красивый вывод списка
  28. Генераторы данных
  29. Синтаксис переменных цикла в Python
  30. Метод gt в Python
  31. Установка Git и AWS CLI
  32. Удаление эмодзи с помощью pandas
  33. Работа с collections в Python
  34. Работа с контекстным менеджером Pool
  35. Объявление переменных в Python
  36. Метод difference_update() — разность множеств
  37. Работа с временем в Python
  38. Логирование с Logzero
  39. Подсчет вхождений элементов
  40. Отправка POST-запроса в REST API
  41. Именование столбцов в Python с pandas
  42. Разделение строк методом split()
  43. Символ подчеркивания в Python
  44. Работа с комплексными числами
  45. Вычисление времени выполнения
  46. Pretty-printing JSON в Python
  47. Получение локальных переменных в Python
  48. Избегайте использования goto

Marketello читают маркетологи из крутых компаний