Курс 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. Работа с Colorama
  2. Оптимизация памяти в Python
  3. Создание коллекций из выражения-генератора
  4. Лямбда-функции в Python
  5. Обновление шаблона base.html
  6. Генераторы данных
  7. Работа с модулем bisect
  8. SciPy: широкий функционал для математических операций
  9. Сравнение def и lambda функций в Python
  10. Регулярные выражения: метод match
  11. Логирование с Logzero
  12. Оптимизация памяти с помощью __slots__
  13. Проверка типов с помощью isinstance
  14. Декораторы в Python
  15. Управление ресурсами в Python
  16. Разрешение имен в Python
  17. discard() — удаление элемента из множества
  18. Функция с *args.
  19. Поиск всех индексов подстроки
  20. Установка и использование pyshorteners
  21. Форматирование данных с помощью pprint
  22. Оптимизация интернирования строк
  23. Вывод с переменной через запятую
  24. Оператор += в Python
  25. Создание итерируемых объектов
  26. Обрезка изображения с Pillow
  27. Атрибуты объекта в Python
  28. Печать комбинаций в Python с Itertools
  29. Перемешивание списка с shuffle()
  30. Аннотации типов в Python
  31. Поиск индексов в списке
  32. Применение промокода в Много лосося
  33. Bootle — простой веб-фреймворк
  34. Копирование объектов в Python
  35. Группы исключений в Python
  36. Названия столбцов в Python таблицах
  37. Метод __iand__ для пользовательских классов
  38. Команда %dhist — список посещенных каталогов
  39. Блок else в Python
  40. Функция eval() в Python
  41. Модуль antigravity: генерация координат
  42. Создание OrderedDict
  43. Контроль точности вывода чисел
  44. Оператор обр. импликации
  45. Создание итератора
  46. Преобразование объекта в строку

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