Курс 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"
- kwargs в Python
- List Comprehension Tutorial
- Вызов функций по строке в Python.
- Извлечение статей с newspaper3k
- Модуль array: создание и использование массивов
- Поиск подстроки в строке
- Списки: объединение, изменение
- Игра «Камень, ножницы, бумага» — Python
- Многострочные комментарии в Python
- Создание циклической ссылки
- Округление в Python
- Удаление дубликатов с помощью множеств
- Функции в Python: создание и вызов
- Присвоение значений переменным в Python
- Работа с CSV файлами в Python
- Просмотр файла в Jupyter Noteboo
- Ограничение ресурсов в Python
- Отображение графиков в Jupyter с Matplotlib
- Приоритет операций в Python
- Функции min(), max(), sum()
- Очистка данных в Python
- Декораторы в Python
- Создание пользовательской коллекции в Python
- Счетчик ссылок в Python
- Создание класса очереди
- Разделение списка на гнппы
- Работа с модулем cmath
- Переопределение метода xor в Python
- Настройка логгера Logzero
- Создание пар из последовательностей
- Генераторы данных
- Работа с файлами и директориями в Python.
- Установка Home Assistant
- Скрытие вывода данных
- Установка User-Agent в Python
- Работа с срезами в Python
- Подсчет часто встречающихся элементов
- Поиск частых элементов в списке
- Строковое представление объектов
- Преобразование текста в речь с Python
- Печать комбинаций в Python с Itertools
- Генераторы списков в Python
- Выбор редактора кода.
- Переопределение метода
- Python: отличительная особенность — отступы















