Курс 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
- Метод __ixor__ для побитового исключающего ИЛИ
- Работа с модулем random
- Конвертация текстовых чисел с помощью Numerizer
- Подсказки при вводе данных в Python
- Поиск всех индексов подстроки
- Обрезка изображения с Pillow
- Отправка POST запроса на сервер.
- Генератор списка в Python
- Модуль Antigravity в Python 3
- Многоточие в Python
- Изменение списка срезами
- Функции с необязательными аргументами
- Форматирование строк в Python
- Установка и использование howdoi
- Форматирование строк в Python
- Документирование функций в Python
- Оператор in в Python
- Вычисление разности множеств в Python
- Фильтрация последовательности
- Повторение элементов в Python
- Изменение списка срезом
- Работа с кортежами в Python
- Библиотека sh: использование команд bash в Python
- Метод split() в Python
- Форматирование чисел в Python
- Циклы в Python
- Работа с CSV файлами
- Подсчет элементов в списке с Counter
- Извлечение аудио из видео
- Генерация случайных чисел в Python
- Принципы программирования
- Измерение времени выполнения кода
- Работа с YAML в Python
- Работа с deque в Python
- Проблема с изменяемыми аргументами
- Игра «Виселица» на Python
- Оператор continue в Python
- Списковое включение в Python
- Разница между датами
- Работа с GitHub в Telegram
- Измерение времени выполнения
- Обработка ошибок в JSON данных
- Оптимизация памяти с __slots__















