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

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

Пример использования декоратора можно увидеть в следующем коде:


def print_argument(func):
    def wrapper(*args, **kwargs):
        print(f"Аргументы функции: {args}")
        result = func(*args, **kwargs)
        return result
    return wrapper

@print_argument
def greet(name):
    return f"Привет, {name}!"

print(greet("Мир"))

В данном примере мы создаем декоратор print_argument, который выводит аргументы функции перед ее выполнением. Затем мы применяем этот декоратор к функции greet, которая принимает имя и возвращает приветствие. При вызове greet(«Мир») сначала будет выведено «Аргументы функции: (‘Мир’,)», а затем «Привет, Мир!».

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

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

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

Автор урока

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

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

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

  1. Метод __iand__ для пользовательских классов
  2. Проблемы с dict в Python
  3. Получение текущей даты в Python
  4. Разница между датами
  5. Расчет времени выполнения
  6. Особенности запятых в Python
  7. Библиотека itertools: объединение списков
  8. Удаление дубликатов в pandas
  9. Цикл for в Python
  10. Функции с необязательными аргументами
  11. Открытие, чтение и закрытие файла
  12. Операции со строками в Python
  13. Избегание изменяемых аргументов
  14. Использование подчеркивания в REPL
  15. Измерение времени выполнения кода
  16. Подсчет частоты элементов с Counter
  17. Работа с кортежами
  18. Сортировка в Python
  19. Получение пути к текущему скрипту с помощью os
  20. Mad Libs Generator
  21. Удаление ссылок в Python
  22. Возврат нескольких значений
  23. Метод rrshift для пользовательских объектов
  24. Операторы увеличения и уменьшения в Python
  25. Модуль xkcd: загрузка комиксов
  26. Декоратор для группы пользователей в Django
  27. Работа с collections.Counter
  28. Python enumerate() функции
  29. Списковое включение в Python
  30. Решение переменной Шредингера
  31. Парсинг веб-страниц с Beautiful Soup
  32. Оформление текста в консоли с TermColor
  33. Объединение, распаковка и деструктуризация
  34. Транспонирование 2D-массива с помощью zip
  35. Метод setdefault() в Python
  36. Регистрация на TenChat
  37. Удаление эмодзи с помощью pandas
  38. Решатель судоку на Python с pygame
  39. Дизассемблирование Python кода
  40. Класс UserDict: дополнительная функциональность
  41. Создание уникального проекта
  42. Правила именования переменных
  43. Поиск индекса элемента в списке
  44. Проверка кортежей.
  45. Поиск подстроки в строке
  46. Проверка элемента в множестве.
  47. Обязательные аргументы в Python
  48. Определение индекса элемента списка

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