Курс 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. Возвращение нескольких значений
  2. Создание уникального проекта
  3. Однострочники Python
  4. Фильтрация элементов с помощью islice
  5. Названия столбцов в Python таблицах
  6. Defaultdict в Python
  7. Ускорение выполнения кода в Python
  8. Работа с изображениями PIL
  9. Изменение переменной в Python: nonlocal
  10. Изменяемые и неизменяемые объекты
  11. Lambda Functions in Python
  12. Деление в Python
  13. Установка и использование emoji
  14. Присвоение значений переменным в Python
  15. Отладка утечек памяти в Python
  16. Команда %dhist — список посещенных каталогов
  17. Функция all() в Python
  18. Основные операции с библиотекой Numpy
  19. Оператор обр. импликации
  20. Декораторы в Python
  21. Основы работы с базами данных в Python
  22. Использование html-скриптов в Jupyter Notebook
  23. Замена символов в строке
  24. Генераторы и сеты в Python
  25. Профилирование с cProfile
  26. Прокачанный трейсинг ошибок
  27. Подсчет элементов в списке с Counter
  28. Кортежи в Python: особенности и преимущества
  29. Получение имени функции с помощью inspect
  30. Тестирование времени с Freezegun
  31. Оператор match в Python
  32. Гибкие функции Python
  33. Создание GUI с Tkinter: Entry
  34. Обработка ошибок в JSON данных
  35. Генераторы в Python
  36. Переопределение метода delitem в Python
  37. Цикл for в Python
  38. Работа с collections.Counter
  39. Аннотации типов в Python
  40. Блок try…finally в Python
  41. Поиск самого длинного слова в списке с использованием max()
  42. Работа со временем в Python
  43. Методы обработки строк в Python
  44. Работа с аргументами командной строки
  45. Обновление данных через PUT запрос
  46. Оптимизация памяти с slots
  47. Работа со строками в Python
  48. Функции в Python

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