Курс 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
- Операции с массивами в NumPy
- Упрощение работы с JSON-данными в Python
- Работа с timedelta в Python
- Открытие и редактирование скриптов Python
- Разработка игры Pong с turtle
- Сложение матриц в NumPy
- Удаление ресурса в Python
- Генерация тестовых данных с factory_boy
- Пустой оператор pass в Python
- Атрибуты класса и экземпляра в Python
- Импорт и использование модулей в Python
- Функция eval() в Python
- Исправление ошибки NameError
- Обновление данных через PUT запрос
- Принципы программирования
- Резервирование символов в Python
- Нарезка списков в Python
- Метод rsub для пользовательских чисел
- Очистка данных с помощью pandas
- Решатель судоку на Python с pygame
- Оператор «not» в Python
- split() без разделителя
- Декоратор защиты анонимных пользователей
- Модуль xkcd: добавление юмора в Python
- Импорт объектов из модулей
- Работа с deque из collections
- Глобальные переменные в Python
- Проблемы с именами переменных
- Использование *args
- discard() — удаление элемента из множества
- Работа со словарями с defaultdict из collections
- Оператор «or» в Python
- Скрытие вывода данных
- Преобразование списка в словарь через генератор
- Функция reduce() из модуля functools
- Генераторы в Python
- Переопределение метода __lshift__
- Проверка элемента в множестве.
- Аннотации типов в Python
- Извлечение новостей с помощью newspaper3k
- Принцип одной функции
- Работа с пакетами
- Генерация QR-кодов с Python















