Курс 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"
- Поиск email
- Запрос пароля с помощью getpass
- Сравнение def и lambda в Python
- Основы работы со списками
- Игра «Камень, ножницы, бумага» — Python
- Установка и использование Virtualenv
- Проверка существования переменной с оператором :=
- Структура данных словарь в Python
- Поиск шаблона в строке
- Ограничение итераций в Python
- Работа с кортежами в Python
- Метод join() для объединения элементов строки
- Big O оптимизация
- Сравнение def и lambda функций в Python
- Равенство и идентичность в Python
- Просмотр атрибутов и методов класса
- Профилирование кода
- Объявление переменных в Python
- Поиск шаблона в начале строки
- Логический оператор «and» в Python
- Проверка на палиндром
- Отправка поздравлений по дню рождения
- Выражения-генераторы в Python
- Применение функции map() с лямбда-функциями
- Фильтрация элементов с помощью islice
- Метод title() в Python
- Генератор бросков кубиков
- Операторы Splat и splatty-splat
- Кортежи в Python: особенности и преимущества
- Метод bool() в Python
- split() без разделителя
- Объединение словарей в Python
- Замена текста с помощью sub
- Установка Home Assistant
- Создание namedtuple из словаря
- EMOT преобразование эмодзи в текст
- Резервирование символов в Python
- Метод join() для объединения элементов строки
- Сортировка в Python
- Присвоение значений переменным в Python
- Оптимизация строк в Python
- Избегайте двойного подчеркивания
- Сравнение строк в Python
- Изменение списка срезами
- Разработка игры Pong с turtle
- Явный импорт переменных















