Вывод типа возвращаемого значения
Вы отлаживаете пакет, над которым работаете вместе с коллегами. Данные, которые возвращает одна из функций, ведут себя странно, но непонятно, какая именно функция является источником проблемы. Ошибки нередко возникают тогда, когда функция возвращает не тот тип данных, который ожидался. Например, если вы рассчитываете получить массив NumPy, а функция возвращает список, это может привести к непредвиденному поведению. Чтобы исключить такую причину, вы решаете написать декоратор print_return_type(), который будет выводить тип значения, возвращаемого при каждом вызове декорируемой функции.
Это упражнение является частью курса
Написание функций на Python
Инструкции к упражнению
- Создайте вложенную функцию
wrapper(), которая станет новой декорированной функцией. - Вызовите декорируемую функцию.
- Верните новую декорированную функцию.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def print_return_type(func):
# Define wrapper(), the decorated function
____ ____(____, ____):
# Call the function being decorated
result = ____(____, ____)
print('{}() returned type {}'.format(
func.__name__, type(result)
))
return result
# Return the decorated function
return ____
@print_return_type
def foo(value):
return value
print(foo(42))
print(foo([1, 2, 3]))
print(foo({'a': 42}))