Курс 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
- Правила именования переменных
- Глобальные переменные в Python
- Генерация случайных чисел в Python
- Сортировка слиянием
- Numpy: использование Ellipsis
- Игра «Угадывание чисел»
- Возврат нескольких значений из функции
- Замена символов в строке
- Вложенные функции в Python
- Генератор бросков кубиков
- Метод __irshift__ для побитового сдвига вправо
- Импорт классов из другого файла
- Округление чисел с помощью round
- Оператор Walrus в Python
- Объединение коллекций в Python
- Срезы в Numpy
- Расчет времени выполнения
- Построение графиков в терминале с bashplotlib
- Преобразование чисел в слова
- Повторение элементов в Python
- Конвертация коллекций в Python
- Базовые объекты Python
- Метод __iand__ для пользовательских классов
- Перезагрузка оператора в Python
- Область видимости переменных в Python
- Повторение элементов в Python
- Сортировка с помощью key
- Установка максимального количества цифр
- Оператор == в Python
- Расширение операции побитового «и» в Python
- Сравнение неупорядоченных списков
- Использование super() в Python
- Классы данных в Python
- Регистрация на хакатоне
- Функции all() и any() в Python
- Применение функции к списку
- UserString в Python
- Список переменных с %who
- Ввод нескольких значений
- Работа с процессами в Python
- Отладчик pdb: начало работы
- Оператор (*) в Python
- Генераторы в Python
- Создание новой даты в Python
- Переворот списка в Python
- Создание уникального проекта















