Напишите декоратор 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)
Результат:
Вызывается greeting('Benjamin')
'greeting' вернула значение 'Привет, Том!'
Привет, Том!
Вызывается greeting('Richard', age=100)
'greeting' вернула значение 'Ого, Миша! Тебе уже 100 лет, ты быстро растёшь!'
Ого, Миша! Тебе уже 100 лет, ты вырос!
Вызывается greeting(name='Dorrisile', age=16)
'greeting' вернула значение 'Ого, Катя! Тебе уже 16 лет, ты быстро растёшь!'
Ого, Катя! Тебе уже 16 лет, ты быстро растешь!
Совет: попробуйте самостоятельно изучить функцию repr. Это поможет в решении задачи.
Решение:
Решение можно скачать с Boosty.to
Как можно отблагодарить:
- Оформить удобную для вас подписку на Boosty.to
- Разово поддержать через DonationAlerts
99200login-checkМодуль 27. Задача 4. Дебаг
