Курс 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
- Логирование с Loguru
- Оператор zip в Python
- Разделение строки с помощью re.split()
- Хеширование паролей с солью
- Отладка кода
- Создание тестовых данных с Faker
- Работа с переменными в Python
- Метод matmul для умножения матриц
- Метод rmatmul для обратного матричного умножения
- JSON-esque в Python
- Определение локальных переменных в Python
- Метод join() для объединения элементов строки
- Работа с модулем bisect
- Кортежи в Python: особенности и преимущества
- Тестирование модели в PyTorch
- Шаблоны и наследование в Flask
- Функции any() и all() в Python
- Оптимизация поиска в словарях
- Проблемы с dict в Python
- Импорт классов из другого файла
- Частичное применение функций в Python
- Функции map, filter, reduce
- Оператор «and» в Python
- Тернарный оператор в Python
- Копирование и вставка текста в Python
- Генератор списка в Python
- Очистка данных в Python
- Форматирование заголовков в Python
- split() — разделение строки
- Список методов и атрибутов
- Разделение строки в Python
- Инициализация структур данных
- Замыкания в Python
- Метод title() в Python
- Mad Libs Generator
- Поиск наиболее частого элемента в списке
- Модуль functools в Python
- Функция zip() в Python
- Python: цикл for и оператор присваивания
- Работа с типами данных в Python с помощью pydantic.
- Оптимизация памяти с помощью __slots__
- Работа с аргументами командной строки в Python
- Создание и удаление объектов
- Закрытие файла в Python
- Получение значений из словарей
- Генераторы данных
- Инверсия списка и строки















