¿Por qué puedes omitir los paréntesis circundantes para generadores en Python al pasarlo a una función?
-
24-10-2019 - |
Pregunta
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 también funciona:
>>> 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áctica? Después de todo, generalmente un generador sin envolver 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
Solución
Estoy seguro de leer el gramática de pitón responderá a esa pregunta.
Si prefiere el inglés simple sobre las gramáticas: PEP-289 lo explica.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow