Курс 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. Распаковка аргументов в Python
  2. Поиск подстроки в строке
  3. Функции высшего порядка в Python
  4. Преобразование строк в числа в Python
  5. Сортировка слиянием
  6. Проверка подстроки в строке
  7. Замена символов в Python
  8. Использование модуля math
  9. split() без разделителя
  10. Работа с базами данных SQLite
  11. Метод get() для словарей
  12. Работа с изображениями Pillow
  13. Метод classmethod
  14. Работа с NumPy.linalg
  15. Метод __ilshift__ для битового сдвига влево
  16. Структура данных deque в Python
  17. Структуры данных в Python
  18. Работа с типами данных в Python с помощью pydantic.
  19. Установка и использование Virtualenv
  20. Форматирование строк в Python
  21. Операции с числами в Python
  22. Изменение списка срезами
  23. Проверка типов с помощью isinstance
  24. Работа с атрибутом dict
  25. Перетасовка списков в Python
  26. Виртуальное окружение Python
  27. Цикл for в Python
  28. Создание вкладок с TKinter
  29. Расширение операции побитового «и» в Python
  30. Склеивание строк через метод join()
  31. Выбор редактора кода.
  32. Работа с YAML в Python
  33. Lambda-функция в Python: использование с map() и sum()
  34. Определение основы слова с showballstemmer
  35. Иерархия классов в Python
  36. Циклы в Python
  37. Печать комбинаций в Python с Itertools
  38. Перемещение и удаление файлов в Python
  39. Преобразование числа в список цифр
  40. Создание GUI с Tkinter: Entry
  41. Работа с часовыми поясами в Python.
  42. Метод repr() в Python
  43. Глобальные переменные в Python
  44. Сортировка списка по индексам
  45. Копирование объектов в Python

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