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