Курс 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. Профилирование данных с Pandas.
  2. Использование двоеточия в Python
  3. Операторы сравнения в Python
  4. Вывод баннеров
  5. Избегайте изменяемых аргументов
  6. Область видимости переменных
  7. Создание генераторов в Python
  8. Функция all() в Python
  9. Удаление и повторная вставка ключа в OrderedDict
  10. Модуль xkcd: загрузка комиксов
  11. Функция enumerate() в Python
  12. Получение текущей даты и времени с помощью datetime
  13. Модуль subprocess: запуск внешних команд
  14. Структуры данных в Python
  15. Аннотации типов в Python
  16. Разработка игры Pong с turtle
  17. Работа с URL-адресами в Python
  18. Генераторы словарей и множеств
  19. Динамическая типизация в Python
  20. Оператор zip в Python
  21. Получение текущего времени в Python
  22. Преобразование многоуровневого словаря
  23. Создание списка через цикл
  24. Объединение списков с помощью zip
  25. Форматирование строк в Python
  26. Эффективная конкатенация строк в Python
  27. Создание новых списков в Python
  28. Оптимизация сравнения в Python
  29. Изучение объектов с помощью dir()
  30. Освоение Python
  31. Удаление дубликатов с помощью множеств
  32. Хэш-функции в Python
  33. Проверка надежности пароля на Python
  34. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  35. Множественное присваивание в Python
  36. Измерение времени выполнения кода в Python
  37. Парсинг статей с Newspaper3k
  38. Python: возвращение нескольких значений
  39. lru_cache оптимизация функций
  40. Получение пути к текущему скрипту с помощью os
  41. Роль object и type в Python
  42. Просмотр внешних файлов в %pycat
  43. Обработка StopIteration в Python
  44. Удаление элементов во время итерации
  45. Замена символов в Python

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