开始使用免费开始使用

打印返回类型

您正在调试一个和朋友一起开发的包。某个函数返回的数据有些奇怪,但您甚至不确定是哪一个函数在捣乱。您知道,如果期望函数返回某种类型,但它返回了其他类型,就可能引入错误。例如,若您期望函数返回一个 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}))
编辑并运行代码