我只是在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 解释。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top