Курс 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"
- Преобразование строк в числа с плавающей запятой
- Работа с комбинациями в Python.
- Обновление ключей в Python
- Перегрузка операторов в Python
- Генерация случайных чисел в Python
- Вычисление логарифмов в Python
- Переопределение метода __pow__
- Работа с *args и **kwargs в Python
- Обратное распространение ошибки
- Получение размера объекта с sys.getsizeof()
- Модуль future Python
- Метод get для словарей
- Рациональные числа в Python
- Протокол управления контекстом
- Функция eval() в Python
- Обработка исключений с блоком else
- Метод split() для разделения строк
- Функция product() из itertools
- Настройка вывода в Numpy
- Метод rmatmul для обратного матричного умножения
- Lambda-функция в Python: использование с map() и sum()
- Создание словарей с defaultdict()
- Работа с модулем random
- Инверсия списка и строки
- Проверка типа объекта в Python
- Работа с кортежами
- Python 3.12: переиспользование кавычек
- Передача неизвестных аргументов в Python.
- Метод ifloordiv для пользовательских классов
- Определение индекса элемента списка
- Удаление символов новой строки в Python.
- Логирование с Loguru
- Метод __iand__ для пользовательских классов
- Разработка Telegram-ботов
- Проверка типа данных
- Таймер обратного отсчета
- Добавление элементов в список
- Печать комбинаций в Python с Itertools
- Реверс строки в Python
- Отступы в Python
- Проверка строки на палиндром
- Сумма элементов списка
- Создание обратного итератора
- Поиск файлов по шаблону
- Сортировка с помощью key
- Ввод нескольких значений
- Сериализация и десериализация объектов















