Курс 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 enumerate() функции
- Возврат нескольких значений
- Удаление элемента по индексу
- Запуск асинхронной корутины
- Управление мышью и клавиатурой с Pyautogui
- Генераторы в Python
- Работа с zip-архивами в Python
- Конкатенация строк в Python
- Установка User-Agent в Python
- Создание списков в Python
- Настройка вывода NumPy
- Основы работы со строками в Python
- Функции в Python
- Python groupby() из itertools: работа с повторяющимися элементами
- Срез списка в Python
- Сортировка HTML-элементов
- Комментарии в Python
- Вызов внешних программ в Python с помощью sh
- Добавление цвета в консоли
- Enum в Python
- Атрибуты класса и экземпляра
- Передача неизвестных аргументов в Python.
- Создание и инициализация объектов
- Форматирование строк в Python
- Асинхронное программирование с asyncio
- Принципы SRP и OCP
- Генераторы в Python
- Форматирование кода на Python
- Условные выражения в Python
- Запуск внешнего кода в Jupyter
- Оператор «or» в Python
- Подсказки типов в Python
- Объединение словарей в Python
- Операция += для списков
- Преобразование числа в восьмеричную строку
- Назначение максимального и минимального значения переменной в Python.
- Python OrderedDict и fromkeys() — работа с словарями
- Структуры данных в Python
- Изменение списка срезом
- Работа с итераторами в Python
- Пустой оператор pass в Python
- Глубокое копирование объектов















