Курс 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. Списковое включение в Python
  2. Логирование в Python
  3. Операции с массивами в NumPy
  4. Упрощение работы с JSON-данными в Python
  5. Работа с timedelta в Python
  6. Открытие и редактирование скриптов Python
  7. Разработка игры Pong с turtle
  8. Сложение матриц в NumPy
  9. Удаление ресурса в Python
  10. Генерация тестовых данных с factory_boy
  11. Пустой оператор pass в Python
  12. Атрибуты класса и экземпляра в Python
  13. Импорт и использование модулей в Python
  14. Функция eval() в Python
  15. Исправление ошибки NameError
  16. Обновление данных через PUT запрос
  17. Принципы программирования
  18. Резервирование символов в Python
  19. Нарезка списков в Python
  20. Метод rsub для пользовательских чисел
  21. Очистка данных с помощью pandas
  22. Решатель судоку на Python с pygame
  23. Оператор «not» в Python
  24. split() без разделителя
  25. Декоратор защиты анонимных пользователей
  26. Модуль xkcd: добавление юмора в Python
  27. Импорт объектов из модулей
  28. Работа с deque из collections
  29. Глобальные переменные в Python
  30. Проблемы с именами переменных
  31. Использование *args
  32. discard() — удаление элемента из множества
  33. Работа со словарями с defaultdict из collections
  34. Оператор «or» в Python
  35. Скрытие вывода данных
  36. Преобразование списка в словарь через генератор
  37. Функция reduce() из модуля functools
  38. Генераторы в Python
  39. Переопределение метода __lshift__
  40. Проверка элемента в множестве.
  41. Аннотации типов в Python
  42. Извлечение новостей с помощью newspaper3k
  43. Принцип одной функции
  44. Работа с пакетами
  45. Генерация QR-кодов с Python

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