Курс 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"
- Преобразование генераторов в циклы
- Получение атрибутов и методов класса
- Установка и использование Virtualenv
- CSV строка разделение в Python
- Получение текущей директории
- Модуль Antigravity в Python 3
- Работа с файлами в Python
- Сложение матриц в NumPy
- Операторы увеличения и уменьшения переменной
- Декоратор Ajax required
- Циклы for в Python
- Распаковка элементов массива
- Проверка переменных окружения в Python
- Установка пакетов с помощью pip
- Установка и использование pyshorteners
- Удаление URL-адресов в Python
- Генераторные функции в Python
- Профилирование данных с Pandas.
- Нан-рефлексивность в Python
- Python и Монти Пайтон
- Python 3.12: переиспользование кавычек
- Настройка нарезки списков
- Сортировка данных с лямбда-функциями
- Оператор is в Python
- Активация Matplotlib в Jupyter
- Распаковка аргументов в Python
- Оператор «and» в Python
- Обратный список чисел
- Отображение HTML кода в Python
- Многоточие в Python
- Удаление элемента по индексу в Python
- Работа с рекламными данными в Pandas
- Метод radd для пользовательских чисел
- Управление виртуальными окружениями в Python
- Значения по умолчанию в Python
- Уникальность ключей в словаре
- Метаклассы в Python
- Применение функции к элементам списка
- Передача словаря через **kwargs
- Защита данных в Python
- Отправка POST запроса на сервер.
- Вакансии в Nebius
- Изменения в обработке логических значений
- Метод repr() в Python
- Возврат нескольких значений
- Создание панели меню Tkinter















