Pourquoi pouvez-vous omettre les parenthèses autour des générateurs en Python lors du passage dans une fonction?
-
24-10-2019 - |
Question
Je suis juste expérimenté en Python avec une syntaxe différente pour passer dans un générateur comme un argument à une fonction, et je compris que même si je fais cela,
>>> sum((j for j in xrange(5)))
10
fonctionne aussi bien:
>>> sum(j for j in xrange(5))
10
Ceci est testé sur Python 2.6.6 sur Linux. Que se passe sous le capot? Est-ce juste du sucre syntaxique? Après tout, le plus souvent un générateur est déballée indéchiffrable à l'interprète:
>>> j for j in xrange(5)
File "<stdin>", line 1
j for j in xrange(5)
^
SyntaxError: invalid syntax
La solution
Je lis que le python grammaire répondra à cette question.
Si vous préférez un anglais simple sur grammaires: PEP-289 l'explique.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow