4.7.7. 函数标注

函数标注 是关于用户自定义函数中使用的类型的完全可选元数据信息(有关详情请参阅 PEP 3107PEP 484 )。

函数标注 以字典的形式存放在函数的 annotations 属性中,并且不会影响函数的任何其他部分。 形参标注的定义方式是在形参名称后加上冒号,后面跟一个表达式,该表达式会被求值为标注的值。 返回值标注的定义方式是加上一个组合符号 ->,后面跟一个表达式,该标注位于形参列表和表示 def 语句结束的冒号之间。 下面的示例有一个位置参数,一个关键字参数以及返回值带有相应标注:

  1. >>> def f(ham: str, eggs: str = 'eggs') -> str:
  2. ... print("Annotations:", f.__annotations__)
  3. ... print("Arguments:", ham, eggs)
  4. ... return ham + ' and ' + eggs
  5. ...
  6. >>> f('spam')
  7. Annotations: {'ham': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>}
  8. Arguments: spam eggs
  9. 'spam and eggs'