Курс 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"
- Списки: объединение, изменение
- Декораторы в Python
- Модуль antigravity: генерация координат
- Создание вкладок с TKinter
- Расчет времени выполнения программы
- Работа с zip()
- Numpy: использование Ellipsis
- Основы работы с базами данных в Python
- UserList в Python: Описание и примеры использования
- Нарезка списков в Python
- Оператор * в Python
- Создание новых функций с помощью functools.partial
- Сортировка в Python
- Создание словарей и множеств в Python.
- Сравнение def и lambda функций в Python
- Инверсия списков и строк в Python
- Defaultdict в Python
- Обязательные аргументы в Python
- Измерение времени выполнения кода
- Генераторы в Python
- Экспорт данных с помощью writefile
- Создание и обучение модели с Keras
- Подсчет количества элементов в списке
- Модуль Antigravity в Python 3
- Виртуальные среды в Python
- Переопределение метода divmod
- Хранение переменных в Python.
- Логические значения в Python
- Именованные кортежи в Python
- Метод __getitem__ в Python
- Иерархия классов в Python
- Удаление ресурса в Python
- Работа с аргументами командной строки
- Глобальные переменные в Python
- Подсказки типов в Python
- Метод округления чисел
- Функции высшего порядка в Python
- Форматирование строк с % в Python
- Подсчет элементов в Python
- Наиболее частотные элементы с помощью Counter
- Преобразование в float
- Просмотр внешних файлов в %pycat
- Модуль functools в Python
- Обход дочерних элементов BeautifulSoup
- Аннотации типов в Python
- Структуры данных в Python
- Транспонирование 2D-массива с помощью zip
- Проверка наличия элемента в списке















