Курс Python → Декораторы в Python
Декораторы в Python представляют собой специальный синтаксис, который позволяет нам изменять поведение функций или методов без изменения их исходного кода. Для написания собственного декоратора в Python, нам нужно определить функцию, которая будет являться декоратором, и применить ее к целевой функции с помощью символа @.
def my_decorator(func):
def wrapper():
print("Before function is called")
func()
print("After function is called")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello()
В данном примере мы создали декоратор my_decorator, который выводит сообщения до и после вызова целевой функции say_hello. При использовании декоратора @my_decorator перед определением функции say_hello, мы расширили функциональность функции say_hello без изменения ее кода.
Декораторы могут принимать аргументы, что позволяет нам настраивать их поведение. Для передачи аргументов в декоратор, мы можем определить еще одну внутреннюю функцию, которая будет принимать эти аргументы и передавать их внутреннему декоратору.
def my_decorator_with_args(arg1, arg2):
def decorator(func):
def wrapper():
print(f"Arguments passed to decorator: {arg1}, {arg2}")
func()
return wrapper
return decorator
@my_decorator_with_args("arg1_value", "arg2_value")
def say_hello():
print("Hello!")
say_hello()
В этом примере мы создали декоратор my_decorator_with_args, который принимает два аргумента и передает их внутреннему декоратору, который затем выводит их значения перед вызовом целевой функции say_hello. Таким образом, мы можем настраивать поведение декораторов в зависимости от переданных аргументов.
Другие уроки курса "Python"
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Преобразование Word в PDF с Spire.Doc
- Управление асинхронными задачами с помощью Semaphore
- Анализ текста на русском языке с помощью Pymystem3
- Проверка ввода с помощью isdigit
- Библиотека sh: использование команд bash в Python
- Работа с deque из collections
- Методы __repr__ и __str__ в Python
- Метод lt для сортировки объектов
- Генераторы по генератору
- Уникальные значения из списка
- Создание графиков в терминале
- Подписка на каналы разработчиков
- Функция с *args.
- Операции со строками в Python
- Работа с парами ключ-значение
- Отрицательные индексы списков в Python
- Обработка исключений в Python 3
- Декоратор Property в Python
- Вывод переменной и строки в Python
- Python: Фильтрация списков с помощью filter()
- Объединение словарей в Python
- Установка библиотек в Python
- Управление виртуальными средами в Python
- Создание виртуальной среды
- Обработка аргументов Python
- Использование подчеркивания в REPL
- Мониторинг работы программы Py-spy
- Работа с изменяемыми коллекциями
- Подчеркивание в REPL
- Модуль xkcd: добавление юмора в Python
- Искажение имен в Python
- Работа с утверждениями в Python
- Непрерывная проверка в Python
- Подписка на @SelectelNews
- Основы работы со списками
- Наиболее частотные элементы с помощью Counter
- Создание OrderedDict
- Метод bool() в Python
- Измерение времени выполнения в Python
- Применение функции к каждому элементу списка
- Загрузка постов Instagram
- Операции с кортежами
- Метод join() для объединения строк
- capitalize() — изменение регистра первого символа строки
- Изменение объектов в Python















