PEP3107概述

诚如提案开头所述:本提案旨在为Python函数引入一个添加元数据注释(metedata annotation)的语法。

在函数标注的基础(Fundamentals of Function Annotations)部分,提案介绍了注释的特征和作用。
对应提案列出的两条,这里就用中文翻译过来:

  1. 参数和返回值的函数标注都是完全可选的(completely optional)。
  2. 函数标注只是提供了一个在编译时(compile-time)将任意Python表达式和函数不同部分关联起来的方式。

也就是说,Python没有为函数标注附加特殊的含义。

在提案语法(Syntax)部分,分别介绍了参数(parameters)和返回值(return-values)的语法格式。参数的语法要求函数注释以可选表达式的形式紧跟在参数名之后,格式为parameter[:expression]。特别地,对于超量参数(即以*args**kwargs格式出现的参数)格式要求类似于:*args[:annotation]**kwargs[:annotation]。讲到返回值的函数标注,格式要符合->expression->取字面意,即是一种标记,expression是任意的Python表达式,该格式出现的位置参考以下演示:
def sum() -> expression:
......(函数体)

函数定义经过编译后,函数标注可以从函数的func_annotations属性中取到。这个属性的类型是Python字典类型,字典的键是参数名称,字典的值是标注表达式估值后的对象。字典中有一个特殊的键return,只有当返回值标注存在的时候它才存在。

你可能感兴趣的:(PEP选摘)