मैं सिर्फ एक समारोह के लिए एक तर्क के रूप में एक जनरेटर में पारित करने के लिए अलग अलग वाक्य रचना के साथ अजगर में प्रयोग किया गया था, और मैंने महसूस किया कि हालांकि मैं किया गया है यह कर,जब आप इसे फ़ंक्शन में पास करते हैं तो पाइथन में जेनरेटर के लिए आस-पास के कोष्ठक क्यों छोड़ सकते हैं?
>>> 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
मैंने यह भी देखा, और यह वास्तव में मुझे परेशान करता है। मुझे इस तरह व्याकरण अनियमितताओं को पसंद नहीं है, भले ही वे अच्छी वाक्य रचनात्मक चीनी हों। अगर मैं एक विचित्र व्याकरण चाहता था, तो मैं पर्ल में प्रोग्रामिंग करूँगा। – Omnifarious
@ ओमनिफारायस: मैं स्थिरता को अत्यधिक महत्व देता हूं (और आमतौर पर पाइथन भी करता है), लेकिन डबल पैर केवल साधारण अनावश्यक हैं। – delnan
@ डेलनान - वे नहीं हैं। उदाहरण के लिए: 'योग (जे के लिए जे, के में {'ए': 1, 'बी': 2} .iteritems())'। 'J' और' k' के बीच अल्पविराम कैसे समझा जाता है, और क्यों? – Omnifarious