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

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

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


def square_decorator(func):
    def wrapper(*args, **kwargs):
        result = func(*args, **kwargs)
        return result ** 2
    return wrapper

@square_decorator
def square(x):
    return x

В приведенном примере функция square_decorator() является декоратором, который принимает функцию в качестве аргумента и возвращает новую функцию, которая возводит результат выполнения исходной функции в квадрат. После применения декоратора @square_decorator к функции square(), результат ее выполнения будет возводиться в квадрат.

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

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

Автор урока

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

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

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

  1. Поиск email
  2. Запрос пароля с помощью getpass
  3. Сравнение def и lambda в Python
  4. Основы работы со списками
  5. Игра «Камень, ножницы, бумага» — Python
  6. Установка и использование Virtualenv
  7. Проверка существования переменной с оператором :=
  8. Структура данных словарь в Python
  9. Поиск шаблона в строке
  10. Ограничение итераций в Python
  11. Работа с кортежами в Python
  12. Метод join() для объединения элементов строки
  13. Big O оптимизация
  14. Сравнение def и lambda функций в Python
  15. Равенство и идентичность в Python
  16. Просмотр атрибутов и методов класса
  17. Профилирование кода
  18. Объявление переменных в Python
  19. Поиск шаблона в начале строки
  20. Логический оператор «and» в Python
  21. Проверка на палиндром
  22. Отправка поздравлений по дню рождения
  23. Выражения-генераторы в Python
  24. Применение функции map() с лямбда-функциями
  25. Фильтрация элементов с помощью islice
  26. Метод title() в Python
  27. Генератор бросков кубиков
  28. Операторы Splat и splatty-splat
  29. Кортежи в Python: особенности и преимущества
  30. Метод bool() в Python
  31. split() без разделителя
  32. Объединение словарей в Python
  33. Замена текста с помощью sub
  34. Установка Home Assistant
  35. Создание namedtuple из словаря
  36. EMOT преобразование эмодзи в текст
  37. Резервирование символов в Python
  38. Метод join() для объединения элементов строки
  39. Сортировка в Python
  40. Присвоение значений переменным в Python
  41. Оптимизация строк в Python
  42. Избегайте двойного подчеркивания
  43. Сравнение строк в Python
  44. Изменение списка срезами
  45. Разработка игры Pong с turtle
  46. Явный импорт переменных

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