Курс 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"
- Оформление текста в консоли с TermColor
- Оператор * в Python
- Импорт в Python: список all
- Открытие и запись файлов
- Установка User-Agent в Python
- Python: отличительная особенность — отступы
- Создание вложенных циклов for
- Проверка индексов коллекции
- Манипуляция формой массива в Numpy
- Отправка HTTP-запросов в Python
- Модуль sys: основы
- Генераторы в Python
- Использование defaultdict в Python
- Модуль antigravity: генерация координат
- Фильтрация последовательности
- Отделение звука от видео
- Счетчик в Python: most_common()
- Сравнение строк в Python
- Хранение данных
- Таймер обратного отсчета
- Основные методы NumPy
- Работа со словарями с defaultdict из collections
- Отрицательные индексы списков
- Преобразование регистра строк
- discard() — удаление элемента из множества
- TypedDict для kwargs в Python 3.12
- Работа с функцией next() в Python
- Контроль точности вывода чисел
- Обработка исключений в Python 3
- Функция sleep() в Python
- Создание класса в Python
- Многострочные строки в Python
- Итераторы с потерямиZIP
- Оптимизация сравнения в Python
- Сортировка в Python
- Создание GUI с Tkinter: Entry
- Методы работы со списками
- Блок try-except-else
- Создание и использование ChainMap
- Функция eval() в Python
- Нан-рефлексивность в Python
- Методы Python для работы с данными
- Объединение словарей в Python
- Создание тестовых данных с Faker















