Курс 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
- Цикл for в Python
- Проверка ввода с помощью isdigit
- Декоратор проверки активности
- Карта бомбоубежищ в Москве и Питере
- Запуск файлового сервера
- Ограничение итераций в Python
- Переопределение унарных операторов
- Метод join() для объединения элементов строки
- Генераторы в Python
- Работа со строками
- Вывод сложных структур данных с помощью pprint
- Функции в Python
- Объединение словарей в Python
- Декораторы классов
- Аргументы *args и **kwargs
- Безопасные SQL-запросы в Python 3.11
- Порядок и длина множеств в Python
- Приоритет операций в Python
- Функции высшего порядка в Python
- Преобразование Excel в PDF с Spire.XLS
- Переопределение метода len
- Подсказки типов в Python
- Фильтрация списка от «ложных» значений
- Обработка данных в Python
- Запуск Python из интерпретатора
- Метод init в Python
- Использование двоеточия в Python
- Парсинг статей с Newspaper3k
- Измерение времени выполнения кода
- Определение размера папок в Python
- Проверка элемента в множестве.
- Реверс строки в Python
- Склеивание строк через метод join()
- Создание новых функций через partial
- Установка и использование модуля «howdoi»
- Пространство имен в Python
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Конкатенация строк в Python
- Списковое включение в Python
- Проверка переменных окружения в Python
- Создание коллекций из генератора
- JSON-esque в Python
- Измерение времени выполнения кода
- Удаление символа из строки















