Курс 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
- Установка и использование pyshorteners
- Оператор del в Python
- Оператор zip в Python
- Разделение функций на этапы
- Обработка элементов в Python
- Многострочные строки в Python
- Логирование с Loguru
- Выход из профиля в Django
- Управление виртуальными средами в Python
- Добавление элементов в список: append() vs extend()
- Оптимизация методов в Python 3.7
- Списки в Python: синтаксис представления
- Создание коллекций из выражения-генератора
- Оператор * в Python
- Форматирование строк в Python
- Декораторы в Python
- Оценка выражений генератора в Python
- Сортировка и обратный порядок
- Метод rlshift для битового сдвига
- Создание Telegram-бота на Python
- Работа с timedelta
- Область видимости переменных
- Удаление элементов по срезу
- Получение атрибутов и методов класса
- Основы слова
- Красивый вывод списка
- Генераторы данных
- Синтаксис переменных цикла в Python
- Метод gt в Python
- Установка Git и AWS CLI
- Удаление эмодзи с помощью pandas
- Работа с collections в Python
- Работа с контекстным менеджером Pool
- Объявление переменных в Python
- Метод difference_update() — разность множеств
- Работа с временем в Python
- Логирование с Logzero
- Подсчет вхождений элементов
- Отправка POST-запроса в REST API
- Именование столбцов в Python с pandas
- Разделение строк методом split()
- Символ подчеркивания в Python
- Работа с комплексными числами
- Вычисление времени выполнения
- Pretty-printing JSON в Python
- Получение локальных переменных в Python
- Избегайте использования goto















