Курс 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"
- Использование defaultdict в Python
- Создание спинбокса в tkinter
- Перевод эмодзи и эмотиконов.
- Преобразование в float
- Dict Comprehension в Python
- Работа с argparse
- Секреты Python
- Множественные конструкторы в Python
- Создание функций с произвольным количеством аргументов
- Использование двоеточия в Python
- Возвращение нескольких значений через кортеж или класс
- Python: цикл for и оператор присваивания
- Слияние словарей в Python 3.9
- Открытие, чтение и закрытие файла
- Метод rsub в Python: расширение функциональности вычитания
- Создание новой даты в Python
- Проверка типа данных
- Генерация случайных чисел Python
- Список импортированных модулей в Python
- Очистка строки в Python
- Нахождение разницы между списками в Python
- Чтение и запись TOML-конфигов
- Эффективная конкатенация строк в Python
- Отрицательные индексы списков в Python
- Оператор del в Python
- Модуль itertools: комбинации и перестановки
- Преобразование range в итератор
- Ввод нескольких значений
- Извлечение данных из JSON
- Модуль xkcd: загрузка комиксов
- Обработка исключений в Python 3
- Непрерывная проверка в Python
- Подписка на Kaspersky Team
- Порядок операций в Python
- Фильтрация списков с itertools
- Работа с байтовыми строками в Python
- Распаковка значений в Python
- Многострочные строки в Python
- Пустой оператор pass в Python
- Руководство по Pymorphy2
- Проблема сравнения словарей
- Применение функции к списку
- Копирование файлов с shutil()
- Python: изменяемые и неизменяемые коллекции
- Именованные срезы в Python
- Разделение списка на гнппы















