Курс 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. Переопределение метода
  2. Автоматизация скриптов на AWS Lightsail.
  3. Defaultdict в Python
  4. Переопределение оператора % для объектов
  5. Работа с рекламными данными в Pandas
  6. Частичное совпадение пользовательского ввода в Python 3.10
  7. Метод rsub в Python: расширение функциональности вычитания
  8. Копирование словарей и списков в Python
  9. enumerate() в Python для работы с индексами
  10. Получение частей дроби
  11. Ускорение обработки данных с %autoawait
  12. Блок try-except-else
  13. Тестирование функции сложения
  14. Функция format() в Python
  15. Изучение объектов с помощью dir()
  16. Генераторы в Python
  17. Сортировка и разворот списка
  18. Управление виртуальными средами в Python
  19. Изменение списка срезами
  20. Вычисление разности множеств в Python
  21. Правила именования переменных
  22. Переименование файлов в Python
  23. Работа с геоданными с помощью geopy
  24. Преобразование регистра строк
  25. Распаковка аргументов в Python
  26. Получение списка кортежей из словаря
  27. Глубокое копирование объектов
  28. Оптимизация памяти с slots
  29. Оператор «моржа» (Walrus Operator)
  30. Отладка в Python
  31. Форматирование строк в Python
  32. Проверка класса объекта
  33. Создание комплексных чисел
  34. Порядок операций в Python
  35. Объединение Python и Shell
  36. Удаление ссылок в Python
  37. Методы list в Python
  38. Вывод букв строки в Python
  39. Метод __irshift__ для Python
  40. Настройка логгера Logzero
  41. Перевод двоичного кода в целое число
  42. Методы сравнения множеств
  43. Проверка на палиндром
  44. Переменная с нижним подчеркиванием
  45. Создание лямбда-функций

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