Курс 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
- Установка random seed в Python
- Сериализация данных в JSON с помощью json.dumps
- Форматирование строк в Python
- Повторение элементов списков
- Экранирование символов в Python
- Вывод букв строки в Python
- Принципы программирования
- Добавление вложенных списков
- Стать Python-разработчиком
- Поиск всех индексов подстроки
- Создание объекта timedelta
- Компиляция регулярных выражений
- Освобождение памяти в Python
- Оператор @ для умножения матриц
- Декораторы в Python
- Установка и использование Logzero
- Отправка POST-запроса в REST API
- Явный импорт в Python
- Создание пользовательской коллекции в Python
- Работа с файлами в Python
- Изменение регистра данных
- Исправление ошибки NameError
- Ускорение кода с помощью векторизации
- Перевод текста с Python Translator
- Управление ресурсами в Python
- Преобразование чисел в Python
- Метод title() в Python
- Работа с timedelta в Python
- Структура строк в Python
- Операции с комплексными числами
- Библиотека Chartify: руководство
- Отношения подклассов в Python
- Определение наиболее частого элемента с помощью collections.Counter
- Combobox в Tkinter
- Возврат нескольких значений
- Объявление переменных в Python
- Метод bool() в Python
- Перевернуть список в Python
- Цепные операции в Python
- Перемешивание списка с shuffle()
- TypedDict для kwargs в Python 3.12
- Подсчет элементов в Python
- Потоковый ввод в Python
- Работа с SQLite в Python
- Удаление и повторная вставка ключа в OrderedDict
- Экспорт функций в Python















