НачатьНачать бесплатно

Вывод типа возвращаемого значения

Вы отлаживаете пакет, над которым работаете вместе с коллегами. Данные, которые возвращает одна из функций, ведут себя странно, но непонятно, какая именно функция является источником проблемы. Ошибки нередко возникают тогда, когда функция возвращает не тот тип данных, который ожидался. Например, если вы рассчитываете получить массив 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}))
Редактировать и запускать код