/
sejeenn
/
python_basic
Обзор
Документация
Войти
/
sejeenn
/
python_basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Module27/04_debug/main.py
33 строки
1 KB
Eugene Vorontsov
Copy repo python basic
03 фев 2025, 20:23
03 фев 2025, 20:23
a8fce4a
Код
Авторство
О чём код?
from typing import Callable def debug(func: Callable) -> Callable: """Декоратор, который выводит имя функции (со всеми аргументами) и какое значение она возвращает. После этого выводится результат её выполнения. """ def wrapper_func(*args, **kwargs): print('\nВызывается функция {}({})'.format(func.__name__, ', '.join( list(f"\"{arg}\"" if isinstance(arg, str) else str(arg) for arg in args) + list(f"{age}=\"{value}\"" if isinstance(value, str) else f"{age}={value}" for age, value in kwargs.items()) ) )) result = func(*args, **kwargs) print("'{}' вернула значение '{}'".format(func.__name__, result)) print(result) return wrapper_func @debug def greeting(name, age=None): if age: return "Ого, {name}! Тебе уже {age} лет, ты быстро растёшь!".format(name=name, age=age) else: return "Привет, {name}!".format(name=name) greeting('Том') greeting("Миша", age=100) greeting(name="Катя", age=16)