Я просто экспериментировал в Python с другим синтаксисом для передачи генератора в качестве аргумента функции, и я понял, что, хотя я и делал это,
>>> sum((j for j in xrange(5)))
10
это также работает:
>>> sum(j for j in xrange(5))
10
Это проверено на Python 2.6.6 в Linux.Что происходит под капотом?Это просто синтаксический сахар?В конце концов, обычно развернутый генератор не поддается расшифровке:
>>> j for j in xrange(5)
File "<stdin>", line 1
j for j in xrange(5)
^
SyntaxError: invalid syntax