Курс 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"
- Python enumerate() использование
- Beautiful Soup — извлечение данных из HTML
- Работа с модулем random
- Основы Python
- Асинхронное программирование с asyncio
- Создание инструмента обнаружения плагиата
- Работа с изображениями PIL
- Управление асинхронными задачами с помощью Semaphore
- Генераторы в Python
- Многопоточность и асинхронное программирование в Python
- Генераторы списков
- Множественное назначение в Python
- Перезапуск ячейки в Jupyter Notebook с dostoevsky
- Регулярные выражения в Python
- Проверка ввода с помощью isdigit
- Проверка списка: any() и all()
- Измерение времени выполнения кода
- Сравнение неупорядоченных списков
- Переопределение метода
- Python UserString — создание подклассов строк
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Итерации в Python
- Форматирование строк в Python
- Проверка условий: all и any
- Функции-генераторы в Python
- Метод join() для объединения элементов
- Функции в одну строку
- Отправка поздравлений по дню рождения
- Работа с zip-архивами в Python
- Работа с getopt
- Встраивание HTML в Jupyter Notebook
- kwargs в Python
- Декораторы в Python
- Печать комбинаций в Python с Itertools
- Ограничение ресурсов в Python
- Удаление файлов и папок в Python
- Установка виртуального окружения Python
- Переопределение оператора % для объектов
- Работа с географическими данными.
- Принципы Zen Python
- Ключевое слово global в Python
- Частичное совпадение ввода
- Удаление дубликатов из списка с помощью dict.fromkeys
- Роль object и type в Python
- Оболочка Python















