/
IvanKhabarov
/
python
Обзор
Документация
Войти
/
IvanKhabarov
/
python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Home_Task/HT_9/task1.py
41 строка
2 KB
Ivan-Khabarov
Добавлено ДЗ
01 окт 2024, 19:24
01 окт 2024, 19:24
3f16c8f
Код
Авторство
О чём код?
# Задание 1. Как дела? # Вася совсем заскучал на работе и решил побаловаться с кодом проекта. Он # написал надоедливый декоратор, который при вызове декорируемой функции # спрашивает у пользователя «Как дела?», вне зависимости от ответа пишет что-то # вроде «А у меня не очень!» и только потом запускает саму функцию. Правда, после # такой выходки Васю чуть не уволили с работы. from functools import wraps from typing import Callable, Any def how_are_you(func: Callable[..., Any]) -> Callable[..., Any]: """ Декоратор, который спрашивает у пользователя 'Как дела?' и выводит предопределенное сообщение перед вызовом декорируемой функции. """ @wraps(func) def wrapper(*args: Any, **kwargs: Any) -> Any: """ Функция-обертка, которая выполняет дополнительное поведение перед вызовом декорируемой функции. """ input('Как дела? ') print('А у меня не очень! Ладно, держи свою функцию.') result = func(*args, **kwargs) # Вызов оригинальной функции return result return wrapper @how_are_you def test() -> None: """ Проверка декоратора и вывод простого сообщения. """ print('<Тут что-то происходит...>') if __name__ == "__main__": test() # Проверка декоратора на функции another_function()