Курс 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"
- Конкатенация строк с методом join()
- Оператор морж в Python 3.8
- Счетчик в Python: most_common()
- Объединение Python и Shell
- Работа со словарями
- Перебор элементов списка в Python
- Нахождение пересечения множеств
- Возврат нескольких значений
- Настройка вывода в Numpy
- Списковое включение в Python
- Повторение элементов списков
- Управление импортом в Python
- Простой калькулятор Python
- Расширение информации об ошибке в Python
- Форматирование данных с pprint
- Преобразование числа в список цифр
- Работа с часовыми поясами в Python.
- Преобразование регистра строк
- Установка Python3.7 и PIP
- globals и locals
- Работа с контекст-менеджером «with»
- Проверка на истинность объектов в Python
- Установка и использование pyshorteners
- ROT13 Шифр Цезаря в Python
- Изменение переменной в Python: nonlocal
- Структура данных словарь в Python
- Изменение элемента списка
- Метод join для объединения строк
- Импорт в Python: список all
- Генераторы списков
- Оператор * в Python
- Переменные в Python: сокращение гласных
- Работа с классами данных
- Регулярные выражения: метод match
- Присвоение значений переменным в Python
- Получение текущей даты в Python
- Функция pow() — возвести число в степень
- Поиск наиболее частого элемента списке
- Ускорение выполнения кода в Python
- Создание множества в Python
- Работа с итераторами в Python
- Объединение словарей в Python
- Курс Data Scientist в медицине
- Область видимости переменных в Python
- Работа с IP-адресами в Python
- Цепные операции в Python















