Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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_Syntax_Iterator_Generator - Fatal编程技术网

在Python函数调用中创建生成器-为什么这样做?

在Python函数调用中创建生成器-为什么这样做?,python,syntax,iterator,generator,Python,Syntax,Iterator,Generator,我不明白这段代码为什么有效。在调用all时,我可以使用类似于代码的语法来生成列表理解,但除了参数列表的对之外,没有任何括号。在参数列表之外执行相同的代码会导致语法错误。 对同一代码调用print会创建生成器,但不使用yield或生成器理解括号 这种特殊的语法只适用于函数调用,还是我遗漏了什么 alli代表我在第1、11区 符合事实的 范围为1、11的i的打印 语法正在创建生成器? 我在1,11范围内为我工作 ^ SyntaxError:无效语法 这就是语法的明确定义方式,请参见: 如果函数调用只

我不明白这段代码为什么有效。在调用all时,我可以使用类似于代码的语法来生成列表理解,但除了参数列表的对之外,没有任何括号。在参数列表之外执行相同的代码会导致语法错误。 对同一代码调用print会创建生成器,但不使用yield或生成器理解括号

这种特殊的语法只适用于函数调用,还是我遗漏了什么

alli代表我在第1、11区 符合事实的 范围为1、11的i的打印 语法正在创建生成器? 我在1,11范围内为我工作 ^ SyntaxError:无效语法
这就是语法的明确定义方式,请参见:

如果函数调用只有一个位置参数,则它可以是不带额外括号的生成器表达式,但在所有其他情况下都必须将其括起来


所有这些都需要一个iterable,而生成器就是iterable。如果要打印它,请使用arg解包,如print*i for i in range1,11,或者更简洁地说,print*range1,11生成器表达式需要…,但是当表达式是调用表达式的唯一参数时,可以省略额外的括号。另请参见文档中的。