Курс 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. Оператор @ для умножения матриц
  2. Поиск подстроки в строке
  3. Python OrderedDict и fromkeys() — работа с словарями
  4. Функции-генераторы в Python
  5. Импорт модулей в Python 3.12
  6. Создание объекта времени
  7. Выход из профиля в Django
  8. Виртуальное окружение Python
  9. Объединение словарей в Python
  10. Перетасовка списков в Python
  11. Сложение матриц в NumPy
  12. Метод split() для разделения строк
  13. Равенство и идентичность в Python
  14. Распаковка аргументов в Python
  15. Блок else в циклах.
  16. Курс Data Scientist в медицине
  17. Потоковый ввод в Python
  18. Многопоточность в Python
  19. Добавление вложенных списков
  20. Частичное совпадение пользовательского ввода в Python 3.10
  21. Обработка исключения UnboundLocalError
  22. Работа с дробями в Python
  23. Извлечение аудио из видео
  24. Создание множества в Python
  25. Логирование с Loguru
  26. Проверка типов с использованием isinstance
  27. Преобразование генераторов в циклы
  28. Подписка на SelectelNews в Twitter
  29. Подсчет элементов в Python
  30. Операции с числами в Python
  31. Функция zip() в Python
  32. Именование переменных в Python
  33. Работа с путями в Python
  34. Сравнение неупорядоченных списков
  35. Работа со списками
  36. Списковое включение в Python
  37. Аргументы *args и **kwargs
  38. Удаление символа из строки
  39. Управление памятью в numpy.
  40. Вывод сложных структур данных с помощью pprint
  41. Операция += для списков
  42. Работа с срезами в Python
  43. Проверка типов с помощью isinstance
  44. Разделение строки с помощью re.split()
  45. Обработка исключений в Python
  46. Операции с комплексными числами
  47. Динамические маршруты во Flask
  48. Создание лямбда-функций

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