当前位置: 首页 > 面试题库 >

在将其传递给函数时,为什么要在Python中省略生成器的括号?

方航
2023-03-14
问题内容

我只是在Python中尝试使用不同的语法来将生成器作为函数的参数传递给我,但我意识到尽管我一直在这样做,

>>> sum((j for j in xrange(5)))
10

这也可以:

>>> sum(j for j in xrange(5))
10

在Linux上的Python 2.6.6上对此进行了测试。到底发生了什么事?只是语法糖吗?毕竟,解译器通常无法理解解包的生成器:

>>> j for j in xrange(5)
  File "<stdin>", line 1
    j for j in xrange(5)
        ^
SyntaxError: invalid syntax

问题答案:

我确定阅读python语法会回答这个问题。

如果您更喜欢普通英语而不是语法:PEP-289对此进行了说明。



 类似资料:
  • 问题内容: 我的字符串中某些地方包含数字,并且我正尝试用其单词符号替换此数字(即3-> 3)。我有一个功能可以做到这一点。现在的问题是找到字符串中的数字,同时保持字符串的其余部分不变。为此,我选择使用该函数,该函数可以接受“ callable”。但是,传递给它的对象是内部对象,我不确定如何处理它。我的函数接受数字或其字符串表示形式。 我应该如何编写一些辅助函数,该函数可用于将调用与执行所需处理的函

  • 问题内容: 好了,当我学习JavaScript时,我阅读的所有书籍和Internet文章都显示了将参数传递给处理JavaScript事件的函数的代码,例如下面的代码块: 我一直都接受这种方式,但是现在我有一些问题(这让我很困惑): 这是哪里来的?当我查看整个JavaScript文件时,似乎根本不存在。 为什么要将此参数传递给函数?如果我不传递给函数,函数会停止工作吗? 考虑下面的代码块。有一个事件

  • 问题内容: 我需要某种方法来使用pool.map()中的一个函数,该函数接受多个参数。根据我的理解,pool.map()的目标函数只能有一个可迭代的参数,但是有没有办法我也可以传入其他参数呢?在这种情况下,我需要传递一些配置变量,例如Lock()并将信息记录到目标函数中。 我试图做一些研究,我认为我也许可以使用部分函数来使其工作?但是,我不完全了解这些工作原理。任何帮助将不胜感激!这是我要执行的简

  • 我正在寻找一种在文本中添加省略号的方法,当它超过一定数量的行。我不想使用一个插件,我从另一个答案中找到了一个纯JS代码。但是,省略号“……”应用于每一个元素,即使它没有通过数字的限制。 HTML: CSS: !!我添加了两倍于行高的高度,以使超过两行的文本溢出。如果我想要三条线,我放三倍的线高。 JS: 使用“之前”和“之后”的示例进行编辑: 前:Lorem ipsum dolor sit ame

  • 问题内容: 我碰到了这段JavaScript代码,但是我不知道该怎么做。运行此代码时为什么会得到“1”?(1)的这个奇怪的小附录是什么?为什么函数用括号括起来? 问题答案: 这里发生了一些事情。首先是立即调用的函数表达式(IIFE)模式: 这提供了一种在自己的范围内执行某些JavaScript代码的方法。通常使用它,以便在函数内创建的任何变量都不会影响全局范围。您可以改用以下方法: 但这需要给函数

  • 我无法将派生类传递给接受基类作为参数的函数。基类由“障碍物”组成,这些障碍物将被放置在“板”上。无效的board::setvalue(int-length、int-width、board 但是,这会导致编译器给出“未知参数转换…”错误。在浏览站点时,我发现我应该将派生对象作为常量进行传递,但这会导致问题,因为无法将常量分配给线路板(因为它包含指向非常量障碍物的指针)。 反过来,将线路板更改为包含常