python - पायथन में जनरेटर के लिए आस-पास के कोष्ठक को क्यों फ़ंक्शंस में पास करते हैं?



syntax generator (1)

मैं फ़ंक्शन के तर्क के रूप में जनरेटर में गुजरने के लिए सिर्फ अलग सिंटैक्स वाले पायथन में प्रयोग कर रहा था, और मुझे एहसास हुआ कि हालांकि मैं यह कर रहा हूं,

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

यह भी काम करता है:

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

यह लिनक्स पर पायथन 2.6.6 पर परीक्षण किया गया है। हुड के नीचे क्या हो रहा है? क्या यह वाक्यात्मक चीनी है? सब के बाद, आमतौर पर एक unwrapped जनरेटर दुभाषिया के लिए अपरिहार्य है:

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

मुझे यकीन है कि अजगर व्याकरण पढ़ने से उस प्रश्न का उत्तर मिलेगा।

यदि आप व्याकरण पर सादे अंग्रेजी पसंद करते हैं: PEP-289 बताता है कि यह





language-implementation