Курс 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"
- Декоратор Ajax required
- Избегание циклических зависимостей классов в Python
- Генератор списка с условием if
- Пустой оператор pass в Python
- Переопределение метода __and__
- Частичное совпадение ввода
- Работа с deque из collections
- Инверсия списка и строки
- Вложенные функции в Python
- Создание и инициализация объектов
- Определение наиболее частого элемента с помощью collections.Counter
- Атрибуты класса и экземпляра в Python
- Освобождение памяти в Python
- Генераторы списков
- Аннотации типов в Python
- Конкатенация списков в Python
- Глобальные переменные в Python
- Класс UserDict: дополнительная функциональность
- Работа со строками в Python.
- Проблемы с dict в Python
- Создание именованных кортежей в Python
- Метод join() для объединения элементов в строку.
- Метод __iand__ для пользовательских классов
- Конвертация изображений в PDF
- Применение промокода в Много лосося
- Работа с аргументами командной строки
- Преобразование PowerPoint в PDF.
- Функция product() в Python
- Итераторы в Python
- Определение объема памяти объекта
- Метод remove() для удаления элемента из списка
- Проверка на палиндром
- Настройка шрифта и цвета в Tkinter
- Хранение переменных в Python.
- Метод __ixor__ для побитового исключающего ИЛИ
- Игра «Угадывание чисел»
- Настройка логгера Logzero
- Python и Юникод: работа с цифрами
- Регистрация на хакатоне
- Методы HTTP запросов в Flask
- Карта бомбоубежищ в Москве и Питере
- split() — разделение строки
- Преобразование в float
- Объединение списков в Python
- Объединение списков в Python















