Python函数注释中=运算符的用途是什么?
在PEP3107中,我刚刚注意到函数注释的一些额外语法,我不知道也不太理解Python函数注释中=运算符的用途是什么?,python,annotations,Python,Annotations,在PEP3107中,我刚刚注意到函数注释的一些额外语法,我不知道也不太理解 def foo(a: expression, b: expression = 5): ... 这是我不确定的第二部分,expression=5。在实际意义上,你会如何使用它?当然不要指定默认参数,这是不言而喻的。注释中没有=5。它是此处关键字参数的默认值 如果去除注释,则得到的是: def foo(a, b = 5): 从: 其中defparameter是函数定义中的参数;“=”表达式在参数之后,而参数的定义
def foo(a: expression, b: expression = 5):
...
这是我不确定的第二部分,expression=5
。在实际意义上,你会如何使用它?当然不要指定默认参数,这是不言而喻的。注释中没有=5
。它是此处关键字参数的默认值
如果去除注释,则得到的是:
def foo(a, b = 5):
从:
其中defparameter
是函数定义中的参数;“=”表达式在参数
之后,而参数
的定义包括定义注释的:“表达式
部分
引述:
参数注释采用可选表达式的形式,该表达式在参数名称之后:
def foo(a: expression, b: expression = 5):
...
在伪语法中,参数现在看起来像标识符[:expression][=expression]
。也就是说,注释始终位于参数的默认值之前,并且注释和默认值都是可选的
强调我的。这是参数“b”的默认值。正如您链接到的PEP所说:“注释总是在参数的默认值之前”啊,错过了那句话。不过还不清楚投票结果如何。
def foo(a: expression, b: expression = 5):
...