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

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

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


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

@my_decorator
def my_function():
    print("Основной код функции")

В данном примере мы создаем декоратор my_decorator, который выводит сообщения до и после выполнения функции my_function. При применении декоратора с помощью синтаксиса @my_decorator, вызов функции my_function будет автоматически заменен на вызов функции my_decorator(my_function), изменяя ее поведение.

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

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

Автор урока

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

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

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

  1. Создание уникального множества
  2. Преобразование текста в нижний регистр
  3. Поиск индекса элемента
  4. Удаление ключей из словаря
  5. Подписка на @SelectelNews
  6. Условные выражения в Python
  7. Выход из профиля в Django
  8. Обмен данными с asyncio.Queue
  9. Преобразование букв в нижний регистр
  10. Хранение данных
  11. Безопасный доступ к значениям словаря
  12. Просмотр атрибутов и методов класса
  13. Оптимизация параметров в Python
  14. Профилирование кода
  15. Метод __call__ в Python
  16. Отделение звука от видео
  17. Работа с геоданными с помощью geopy
  18. Генераторы в Python
  19. Многоточие в Python
  20. Python: отсутствие точек с запятыми
  21. Использование html-скриптов в Jupyter Notebook
  22. Объединение списков в Python
  23. Функция с **kwargs в Python
  24. Экспорт внешнего файла с помощью writefile
  25. Копирование файлов с shutil()
  26. Работа со строками в Python
  27. Анонимные функции в Python
  28. Очистка данных с Pandas
  29. Проверка версии Python
  30. Функция zip() в Python
  31. Упрощение условных выражений с тернарным оператором
  32. Расчет времени выполнения кода
  33. Операция += для списков
  34. Генераторы в Python
  35. PrettyTable: создание таблицы
  36. Python Enum Weekday Usage
  37. Получение текущего времени в Python
  38. Создание Telegram-бота на Python
  39. Базовые объекты Python
  40. Создание именованных кортежей в Python
  41. Атрибуты класса и экземпляра в Python
  42. Блок else в Python
  43. Применение промокода в Много лосося
  44. TON Smart Challenge #2: участие и подготовка
  45. Срезы в Python

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