Курс 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"
- Работа с Colorama
- Оптимизация памяти в Python
- Создание коллекций из выражения-генератора
- Лямбда-функции в Python
- Обновление шаблона base.html
- Генераторы данных
- Работа с модулем bisect
- SciPy: широкий функционал для математических операций
- Сравнение def и lambda функций в Python
- Регулярные выражения: метод match
- Логирование с Logzero
- Оптимизация памяти с помощью __slots__
- Проверка типов с помощью isinstance
- Декораторы в Python
- Управление ресурсами в Python
- Разрешение имен в Python
- discard() — удаление элемента из множества
- Функция с *args.
- Поиск всех индексов подстроки
- Установка и использование pyshorteners
- Форматирование данных с помощью pprint
- Оптимизация интернирования строк
- Вывод с переменной через запятую
- Оператор += в Python
- Создание итерируемых объектов
- Обрезка изображения с Pillow
- Атрибуты объекта в Python
- Печать комбинаций в Python с Itertools
- Перемешивание списка с shuffle()
- Аннотации типов в Python
- Поиск индексов в списке
- Применение промокода в Много лосося
- Bootle — простой веб-фреймворк
- Копирование объектов в Python
- Группы исключений в Python
- Названия столбцов в Python таблицах
- Метод __iand__ для пользовательских классов
- Команда %dhist — список посещенных каталогов
- Блок else в Python
- Функция eval() в Python
- Модуль antigravity: генерация координат
- Создание OrderedDict
- Контроль точности вывода чисел
- Оператор обр. импликации
- Создание итератора
- Преобразование объекта в строку















