Курс Python → Декораторы в Python
Декораторы в Python позволяют добавлять дополнительное поведение к уже существующим функциям, не изменяя их основной логики. Это особенно удобно, когда нужно добавить однотипное действие к нескольким функциям или когда требуется выполнить какие-то действия до и после вызова функции.
Примером может служить декоратор, который замеряет время выполнения функции. Для создания декоратора в Python используется синтаксис с символом @. Например, декоратор, который выводит время выполнения функции, может выглядеть следующим образом:
import time
def timer(func):
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"Время выполнения функции {func.__name__}: {end_time - start_time} секунд")
return result
return wrapper
@timer
def some_function():
# код функции
В данном примере декоратор timer измеряет время выполнения функции some_function и выводит результат на экран. При вызове функции some_function сначала будет выведено время выполнения, а затем будет выполнен основной код функции.
Помимо замера времени выполнения, с помощью декораторов можно реализовать множество других дополнительных функций, таких как логирование, кеширование, валидация параметров и многое другое. Использование декораторов делает код более чистым, модульным и понятным, так как каждая функция отвечает только за свою основную задачу, а дополнительное поведение вынесено в отдельные декораторы.
Таким образом, использование декораторов в Python позволяет значительно упростить и улучшить структуру кода, делая его более гибким и поддерживаемым. Рекомендуется ознакомиться с различными примерами использования декораторов и экспериментировать с ними для более глубокого понимания их работы.
Другие уроки курса "Python"
- Удаление специальных символов
- Оператор is в Python
- Хранение данных с помощью dataclasses
- Ограничение итераций в Python
- Принципы программирования
- Метод join для наборов
- EMOT преобразование эмодзи в текст
- Обработка исключения UnboundLocalError
- Сравнение def и lambda функций в Python
- Поиск с библиотекой Google
- Фильтрация списка чисел
- Регистрация на хакатоне
- Экспорт данных с помощью writefile
- Логирование с Loguru
- Работа с модулем bisect
- Лимиты на ресурсы Python
- Функции в Python: создание и вызов
- Функция zip() — объединение последовательностей
- Сохранение и загрузка модели в PyTorch
- Выборка чисел
- Передача словаря через **kwargs
- Работа с itertools
- Преобразование Word в PDF с Spire.Doc
- Python: библиотеки и функции
- Обмен значений переменных в Python
- Модуль sys: основы
- TypedDict для kwargs в Python 3.12
- Создание пар из последовательностей
- Локальные переменные.
- Заказ карты Тинькофф Black
- Проверка типа данных
- Именование столбцов в Python с pandas
- Генераторы в Python
- Принципы LSP и ISP в Python
- Определение имен функций
- Оператор walrus в Python
- Сравнение строк в Python
- Очистка вывода в Python
- Переопределение оператора % для объектов
- Создание GUI с Tkinter: Entry
- Создание графиков в терминале
- Изменение переменной в Python: nonlocal
- Проблема с изменяемыми аргументами
- Удаление эмодзи с помощью pandas
- Методы split() и join() — Python строк.















