Курс Python → Декораторы в Python

Декораторы — это мощный инструмент в Python, который позволяет добавлять функциональность к существующему коду без изменения его структуры. Они представляют собой функции, которые принимают другую функцию в качестве аргумента и возвращают новую функцию. Эта новая функция может выполнять дополнительные действия до или после вызова исходной функции.

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


def authentication_required(func):
    def wrapper(*args, **kwargs):
        if check_authentication():
            return func(*args, **kwargs)
        else:
            return "Authentication failed"
    return wrapper

@authentication_required
def secure_function():
    return "Secure content"

В данном примере мы создаем декоратор authentication_required, который проверяет аутентификацию пользователя перед выполнением функции secure_function. Если проверка проходит успешно, функция выполняется, иначе возвращается сообщение об ошибке. Применение декоратора к функции осуществляется с помощью символа @ перед названием декоратора.

Использование декораторов повышает гибкость кода, позволяя легко добавлять или изменять функциональность без необходимости внесения изменений в саму функцию. Это упрощает разработку и позволяет создавать более модульный и эффективный код. Благодаря декораторам Python становится более мощным и удобным инструментом для разработки программного обеспечения.

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

Автор урока

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

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

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

  1. Работа с модулем cmath
  2. Участие в сообществе @selectel
  3. ChainMap.new_child() — добавление нового словаря
  4. Генератор списка с условием if
  5. Работа со строками в Python
  6. Метод ne для сравнения объектов
  7. Работа с deque из collections
  8. Метод getitem для доступа к элементам последовательности
  9. Срез в Python
  10. Чтение и запись TOML-конфигов
  11. Изучение объектов с помощью dir()
  12. Логирование с Loguru
  13. Округление чисел с помощью round
  14. Сравнение строк в Python
  15. CLI-инструмент howdoi
  16. Ввод нескольких значений
  17. Работа с collections в Python
  18. Лямбда-функции в Python
  19. Создание списков в Python
  20. Работа с часовыми поясами в Python
  21. Списковое включение в Python
  22. Кортеж в Python: создание и использование
  23. Абстракции словарей и множеств в Python
  24. Работа со списками
  25. Заказ карты Тинькофф Black
  26. Модуль future Python
  27. Модуль sys: основы
  28. Управление контекстом с помощью декоратора contextmanager
  29. Метод join для наборов
  30. Настройка вывода NumPy
  31. Переменные класса и экземпляра
  32. Просмотр внешнего файла в Python
  33. Monkey Patching в Python
  34. Работа с модулем os в Python
  35. Проверка элементов списка условием
  36. Преобразование генераторов в циклы
  37. Строки в Python: апострофы и кавычки
  38. Оператор Walrus в Python 3.8
  39. Метод init в Python
  40. Пустой оператор pass в Python
  41. Логический оператор «and» в Python
  42. Инвертирование словаря
  43. Протокол управления контекстом
  44. Сохранение и загрузка модели в PyTorch

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