Perché si possono omettere le parentesi circostanti per i generatori in Python quando si passa in una funzione?
-
24-10-2019 - |
Domanda
Mi stavo sperimentando in Python con sintassi diversa per il passaggio in un generatore come argomento di una funzione, e mi sono reso conto che, anche se ho fatto questo,
>>> sum((j for j in xrange(5)))
10
Questo funziona come bene:
>>> sum(j for j in xrange(5))
10
Questa è testato su Python 2.6.6 su Linux. Che cosa sta succedendo sotto il cofano? È solo zucchero sintattico? Dopo tutto, di solito un generatore di scartare è indecifrabile per l'interprete:
>>> j for j in xrange(5)
File "<stdin>", line 1
j for j in xrange(5)
^
SyntaxError: invalid syntax
Soluzione
Sono sicuro che leggendo il pitone grammatica risponderà a questa domanda.
Se si preferisce un inglese su grammatiche: PEP-289 lo spiega.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow