Курс 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. Анонимные функции Lambda
  2. Оператор match в Python
  3. Поиск частого элемента
  4. Показ всплывающих окон Tkinter
  5. Итерация по коллекции в Python
  6. split() без разделителя
  7. Взаимодействие с внешними процессами в Python
  8. Декораторы в Python
  9. Получение значений из словарей
  10. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  11. Работа с парами ключ-значение
  12. Метод __index__ в Python
  13. Объявление переменных в Python
  14. Объединение словарей в Python
  15. Проверка однородности элементов списка
  16. Работа с часовыми поясами в Python
  17. Иерархия классов в Python
  18. Создание вложенного генератора
  19. Lambda-функция в Python: использование с map() и sum()
  20. Перезагрузка оператора в Python
  21. Ускоренный импорт библиотек
  22. Выбор редактора кода.
  23. Обработка исключений с блоком else
  24. Оператор += в Python
  25. Создание и обучение модели с Keras
  26. Дефолтные параметры в Python
  27. ChainMap.new_child() — добавление нового словаря
  28. Нахождение самого длинного слова в списке с помощью max
  29. Получение списка кортежей из словаря
  30. Создание Telegram-бота на Python
  31. Копирование объектов в Python
  32. Контекстный менеджер в Python
  33. Оптимизация памяти в Python
  34. Лямбда-функции в Python
  35. Методы classmethod и staticmethod
  36. Улучшение читаемости кода в Python
  37. Создание списка дат
  38. Получение текущей даты в Python
  39. Структурирование данных с Pydantic
  40. Метод join() для объединения элементов строки
  41. Функции высшего порядка в Python
  42. Метод rmatmul для обратного матричного умножения
  43. Извлечение новостей с newspaper3k
  44. Курсы Яндекс Практикум
  45. Любовь к Python
  46. Лямбда-функции в цикле
  47. Работа с переменными в Python

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