Курс 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"
- Создание GUI на Tkinter
- Объединение списков в Python
- Искажение имен в Python
- Функции map() и reduce() в Python
- Удаление ключа из словаря
- Исправление ошибки NameError
- Фильтрация списков с itertools
- Оператор is в Python
- Удаление URL-адресов в Python
- Итераторы в Python
- Конкатенация строк в Python
- Использование обратной косой черты в f-строках
- Работа с изменяемыми коллекциями
- Получение пути к текущему скрипту с помощью os
- Именование переменных в Python
- Применение функции map() в Python
- Лямбда-функции в Python
- Дефолтные параметры в Python
- Функция enumerate в Python
- Синтаксис переменных цикла в Python
- Вложенные генераторы в Python
- Сравнение строк в Python
- Создание панели меню Tkinter
- Подсчет количества элементов в списке
- Метод __index__ в Python
- Работа с прокси в Python
- Оператор морж в Python 3.8
- Генераторы в Python
- Сортировка данных в Python
- Работа с срезами в Python
- Метод __int__ в Python
- Запрос DELETE с библиотекой requests
- Оператор распаковки в Python
- Отслеживание прогресса с tqdm
- Вывод символов строки в Python
- Лямбда-функции в Python
- Создание списков в Python
- Упрощенный вывод данных в Python
- Присвоение и ссылки
- Объединение объектов в Python
- Генерация чисел с range()
- Работа со словарями Python
- Создание множества в Python
- Метод repr() в Python
- Декоратор total_ordering для класса Point
- Метод rsub в Python: расширение функциональности вычитания















