Курс Python → Декораторы в Python
Декораторы в Python — это мощный инструмент, который позволяет изменять поведение функций без изменения их исходного кода. Они позволяют добавлять дополнительную функциональность к существующим функциям, не затрагивая их основной логики. Декораторы реализуются в виде обычных функций, которые принимают другую функцию в качестве аргумента и возвращают новую функцию.
Для использования декораторов в Python необходимо определить функцию-декоратор, которая будет принимать функцию в качестве аргумента и возвращать новую функцию, изменяющую поведение оригинальной. Декораторы могут быть использованы для различных целей, таких как логирование, кэширование, проверка аргументов и многое другое.
def my_decorator(func):
def wrapper():
print("Дополнительный код до выполнения функции")
func()
print("Дополнительный код после выполнения функции")
return wrapper
@my_decorator
def say_hello():
print("Привет, мир!")
say_hello()
В данном примере мы определяем декоратор my_decorator, который добавляет дополнительный код до и после выполнения функции say_hello. При вызове say_hello() будет выводиться текст «Дополнительный код до выполнения функции», затем «Привет, мир!» и в конце «Дополнительный код после выполнения функции». Это демонстрирует, как декораторы могут изменять поведение функций.
Использование декораторов делает код более читаемым и модульным, позволяя разделить основную логику функции от дополнительной функциональности. Это позволяет избежать дублирования кода и упрощает его поддержку и расширение. Декораторы — это важная часть парадигмы программирования на Python и позволяют писать более гибкий и эффективный код.
Другие уроки курса "Python"
- Срезы в Python
- Работа с прокси в Python
- Генерация ключей RSA
- Аргумент по умолчанию
- Список импортированных модулей в Python
- Транспонирование матрицы
- Срез в Python
- Подсказки типов в Python
- Метод ifloordiv для пользовательских классов
- Модуль functools в Python
- Проверка дубликатов в Python
- Flask — веб-фреймворк Python
- Замена текста в Python
- *args и **kwargs в Python
- ChainMap избыточные ключи
- Управление асинхронными задачами с помощью Semaphore
- Запрос DELETE с библиотекой requests
- Получение ID процесса
- Обработка исключений в Python
- Сравнение def и lambda функций в Python
- Инверсия списка и строки
- Генератор списка с условием if
- Обновление данных через PUT запрос
- Оператор continue в Python
- Изучение объектов с помощью dir()
- Просмотр атрибутов и методов класса
- Оптимизация памяти с помощью __slots__
- Создание детектора плагиата
- Генераторы в Python
- Оператор Walrus: правильное использование
- История Python
- Lambda Functions in Python
- Обработка данных в Python
- Оператор «not» в Python
- Генераторы списков
- Принцип одной функции
- Создание объекта timedelta
- Модуль os: работа с файлами и папками
- Запуск файлового сервера
- Декораторы с @wraps
- Управление ресурсами с контекстными менеджерами
- Импорт модулей в Python 3.12















