que iteradores generadores generador explicacion español creacion codigo python syntax generator language-implementation

iteradores - ¿Por qué se puede omitir el paréntesis que rodea a los generadores en Python al pasarlo a una función?



que es un iterable en python (1)

Estaba experimentando en Python con una sintaxis diferente para pasar en un generador como argumento para una función, y me di cuenta de que, aunque he estado haciendo esto,

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

esto funciona también:

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

Esto se prueba en Python 2.6.6 en Linux. ¿Qué está pasando debajo del capó? ¿Es solo azúcar sintáctico? Después de todo, generalmente un generador no envuelto es indescifrable para el intérprete:

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