Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python函数注释中=运算符的用途是什么?_Python_Annotations - Fatal编程技术网

Python函数注释中=运算符的用途是什么?

Python函数注释中=运算符的用途是什么?,python,annotations,Python,Annotations,在PEP3107中,我刚刚注意到函数注释的一些额外语法,我不知道也不太理解 def foo(a: expression, b: expression = 5): ... 这是我不确定的第二部分,expression=5。在实际意义上,你会如何使用它?当然不要指定默认参数,这是不言而喻的。注释中没有=5。它是此处关键字参数的默认值 如果去除注释,则得到的是: def foo(a, b = 5): 从: 其中defparameter是函数定义中的参数;“=”表达式在参数之后,而参数的定义

在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][=expression]
。也就是说,注释始终位于参数的默认值之前,并且注释和默认值都是可选的


强调我的。

这是参数“b”的默认值。

正如您链接到的PEP所说:“注释总是在参数的默认值之前”啊,错过了那句话。不过还不清楚投票结果如何。
def foo(a: expression, b: expression = 5):
    ...