Курс 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"
- Создание веб-приложения с Flask
- Извлечение аудио из видео
- Работа с SQLite в Python
- Создание namedtuple из словаря
- История Python
- Проверка строки на палиндром
- Метод __imod__ для Python
- Избегание изменяемых аргументов
- Непрерывная проверка в Python
- Функция reduce() из модуля functools
- Красивый вывод списка
- Имена объектов в Python
- Лямбда-функции в Python
- Создание детектора плагиата
- Запуск Python из интерпретатора
- Изменение элемента списка
- Вызов внешних программ в Python с помощью sh
- Получение текущего времени в Python
- Удаление ключа из словаря в Python
- Python: Фильтрация списков с помощью filter()
- Объединение, распаковка и деструктуризация
- Форматирование строк в Python
- Руководство по Pymorphy2
- Изменение логики работы с временем
- Декораторы в Python
- Обработка ошибок ввода данных
- Метод rpow в Python
- ChainMap.new_child() — добавление нового словаря
- Сортировка в Python
- Обучение модели с указанием эпох
- Функция zip() в Python
- Аннотации типов в Python
- Основы Python
- Замена подстроки
- Создание словарей с defaultdict
- Работа с collections.Counter
- Оптимизация поиска в словарях
- Декоратор защиты анонимных пользователей
- Нахождение отличий в списках
- Выключение компьютера с помощью Python
- Декораторы в Python
- Работа с процессами в Python
- Работа с базами данных SQLite
- Pillow: работа с изображениями
- Определение наиболее частого элемента с помощью collections.Counter
- Библиотека itertools: объединение списков
- Модуль xkcd: добавление юмора в Python
- Функция с *args.















