Курс 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`. При использовании декоратора `@my_decorator` перед определением функции `say_hello`, мы применяем его к функции `say_hello`.

Библиотеки, такие как Flask и aiogram, активно используют декораторы для управления маршрутами и обработчиками сообщений. Например, в Flask декоратор `@app.route(‘/’)` определяет маршрут для обработки HTTP-запросов к корневому URL. Это позволяет легко создавать веб-приложения с помощью Python.

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

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

Автор урока

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

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

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

  1. Работа с библиотекой xkcd
  2. Python Менеджер контекста
  3. Переворот списка в Python
  4. Профилирование с cProfile
  5. Создание функций высшего порядка
  6. Генерация QR-кодов с библиотекой qrcode
  7. Работа с прокси в Python
  8. Перегрузка операторов в Python
  9. Условные выражения в Python
  10. Исключение NotImplementedError
  11. Python: Splat-оператор и splatty-splat
  12. Удаление элементов из списка в Python
  13. Подписка на каналы разработчиков
  14. Получение идентификатора объекта в памяти
  15. Методы сравнения множеств
  16. Преобразование списка в словарь через генератор
  17. Решатель судоку на Python с pygame
  18. 9 уловок для чистого кода
  19. Обновление ключей в Python
  20. Метод gt в Python
  21. Преобразование объекта в строку
  22. Работа со строками в Python.
  23. Создание вкладок с TKinter
  24. Импорт модулей и пакетов в Python
  25. Поиск шаблона в строке
  26. Мониторинг памяти с Pympler
  27. Вывод сложных структур данных с помощью pprint
  28. Синтаксис переменных цикла в Python
  29. Перевернуть список в Python
  30. Импортирование в Python
  31. Импорт с альтернативным именем
  32. Обход словаря в Python
  33. Работа с байтовыми строками в Python
  34. Метод count() для списка
  35. Оператор == в Python
  36. Переворот списка в Python
  37. Python: отсутствие точек с запятыми
  38. Комментарии в Python
  39. Избегайте изменяемых аргументов
  40. Метод rename() для переименования файлов и каталогов
  41. Использование двоеточия в Python
  42. Метод rsub в Python: расширение функциональности вычитания
  43. Поиск частых элементов в списке
  44. Тестирование модели в PyTorch
  45. Замена переменных в Python
  46. Обновление данных через PUT запрос

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