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

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

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

def my_decorator(func):
    def wrapper():
        print("Дополнительный код до вызова функции")
        func()
        print("Дополнительный код после вызова функции")
    return wrapper

@my_decorator
def my_function():
    print("Основной код функции")

В приведенном выше примере мы создаем декоратор my_decorator, который выводит сообщения до и после вызова функции. Затем мы используем декоратор перед определением функции my_function. Когда мы вызываем my_function, она будет автоматически обернута в декоратор my_decorator, и дополнительный код будет выполнен до и после выполнения основной функции.

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

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

Автор урока

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

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

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

  1. Оптимизация сравнения в Python
  2. Обрезка изображения с Pillow
  3. Типы возвращаемых значений в Python
  4. Управление экспортом элементов
  5. Объединение списков в Python
  6. Python: динамическая типизация и проверка типов
  7. Flask — веб-фреймворк Python
  8. Работа с классами данных
  9. Метод rmatmul для пользовательских матриц
  10. Поиск индекса элемента
  11. Тестирование времени с Freezegun
  12. Отображение графиков в Jupyter с Matplotlib
  13. Генерация фальшивых данных с Faker
  14. Декоратор Ajax required
  15. Измерение времени выполнения кода
  16. kwargs в Python
  17. Обработка ошибок в JSON данных
  18. Упрощение работы с JSON-данными в Python
  19. Генераторы по генератору
  20. ChainMap избыточные ключи
  21. Объединение кортежей в Python
  22. Метод join() с набором
  23. Установка и обучение ChatterBot
  24. Управление памятью в Python
  25. Метод index() в Python
  26. Импортирование в Python
  27. Работа с асинхронными задачами в Python
  28. Объединение строк с помощью метода join
  29. Создание коллекций из генератора
  30. Создание пар из последовательностей
  31. Передача словаря через **kwargs
  32. Применение функций в Python
  33. Отрицательные индексы списков
  34. Управление асинхронными задачами на Python.
  35. Объединение Python и Shell
  36. Обновление и получение данных в SQLite
  37. Оператор «not» в Python
  38. Получение текущей даты и времени с помощью datetime
  39. Генераторы в Python
  40. ROT13 Шифр Цезаря в Python
  41. Извлечение аудио из видео
  42. Тестирование модели в PyTorch
  43. Оптимизация интернирования строк
  44. Асинхронное выполнение задач в процессах
  45. Лимиты на ресурсы Python
  46. Проверка переменных окружения в Python

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