Курс 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. Умножение строк и списков
  3. Поиск с помощью регулярных выражений
  4. CLI-инструмент howdoi
  5. Оператор in и not in в Python
  6. Работа с набором данных CIFAR10 в PyTorch
  7. Избегайте использования goto
  8. Создание списков в Python
  9. Управление памятью в numpy.
  10. Копирование списков в Python
  11. Создание веб-приложения с Flask
  12. Объединение словарей в Python
  13. Создание словарей и множеств в Python.
  14. Получение ID текущего процесса
  15. Многострочные комментарии в Python
  16. Функции в Python
  17. Создание пользовательской коллекции в Python
  18. Numpy: разбиение массивов
  19. Генераторы в Python
  20. Доступ к локальным переменным
  21. Избегание изменяемых аргументов
  22. JMESPath в Python
  23. Операторы увеличения и уменьшения в Python
  24. Метод join для наборов
  25. Множественные конструкторы в Python
  26. Python Метод sleep() времени
  27. Определение имен функций
  28. Работа с zip()
  29. Передача аргументов через **arguments
  30. Склеивание строк без циклов
  31. Красивый вывод списка
  32. Извлечение аудио из видео
  33. Векторизация в Python с NumPy.
  34. Генераторы данных
  35. Декораторы с аргументами в Python
  36. Статическая типизация в Python
  37. Отладка утечек памяти в Python
  38. Отладка регулярных выражений в Python
  39. Поиск уникальных элементов строкой в Python
  40. Перегрузка операторов в Python
  41. Создание словарей в Python
  42. Описание скриптов в README
  43. Методы split() и join() — Python строк.
  44. Сравнение def и lambda функций в Python
  45. Основные методы NumPy
  46. Функции в одну строку

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