ПочатиПочніть безкоштовно

Надрукуйте тип значення, що повертається

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