Pythonの発電機の周囲の括弧を機能に渡すときに省略できるのはなぜですか?

StackOverflow https://stackoverflow.com/questions/4799459

質問

私は、関数への引数としてジェネレーターを渡すために異なる構文でPythonで実験していましたが、私はこれを行っていますが、

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

これも機能します:

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

これは、LinuxのPython 2.6.6でテストされています。フードの下で何が起こっているのですか?それは単なる構文砂糖ですか?結局のところ、通常、包装されていないジェネレーターは通訳者にとって判読できません。

>>> j for j in xrange(5)
  File "<stdin>", line 1
    j for j in xrange(5)
        ^
SyntaxError: invalid syntax
役に立ちましたか?

解決

私は確かに読んでいます Python文法 その質問に答えます。

あなたが文法よりも平易な英語を好むなら: PEP-289 それを説明します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top