Модуль 27. Задача 4. Дебаг

Напишите декоратор 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
9920login-checkМодуль 27. Задача 4. Дебаг

Добавить комментарий