lambda
स्पष्ट रूप से एक कीवर्ड है; यह पार्सर द्वारा मान्यता प्राप्त एक विशेष शब्द है, जो अन्यथा identifier
की परिभाषा में पड़ जाएगा।
lambda
अर्थात् एक ऑपरेटर नहीं है। एक ऑपरेटर सिर्फ एक समारोह है, लेकिन एक अलग वाक्यविन्यास के साथ बुलाया। हम +
ऑपरेटर को add
फ़ंक्शन के साथ बदलने की कल्पना कर सकते हैं; इसके अलावा हमारे सभी कार्यक्रमों को और अधिक verbose और पढ़ने के लिए कठिन हो जाएगा, लेकिन हम अभी भी उन्हें लिख सकते हैं। दूसरी ओर lambda
भाषा निर्माण को फ़ंक्शन के साथ प्रतिस्थापित नहीं किया जा सका; lambda x: x+1
सिर्फ x
और x+1
मानों के परिणाम की गणना नहीं कर रहा है, क्योंकि इस संदर्भ में वे सभी मान नहीं हैं (x
परिभाषित किए गए फ़ंक्शन के पैरामीटर का नाम है, और x+1
लैम्ब्डा बॉडी का कोड है)।
एक ही पृष्ठ में आप हम से लिंक किया गया: http://docs.python.org/py3k/reference/lexical_analysis.html#operators
निम्नलिखित टोकन ऑपरेटरों हैं:
+ - * ** / // %
<< >> & | ^ ~
< > <= >= == !=
ऑपरेटरों पर उपधारा की सारी सामग्री है कि। इससे मैं इसका मतलब यह लेता हूं कि भाषा "ऑपरेटरों" के टोकन को परिभाषित करने के संदर्भ में प्रतीकात्मक ऑपरेटरों हैं, जबकि कीवर्ड पर अनुभाग स्पष्ट रूप से वर्तनी कर रहा है कि "ये चीजें जो अन्यथा पहचानकर्ता होंगी वे कीवर्ड हैं"। यही कारण है कि मुझे लगता है कि not
, is
, in
आदि जैसे कीवर्ड ऑपरेटर सूचीबद्ध नहीं हैं। लेकिन निश्चित रूप से ऐसी चीजें हैं जो अर्थात् ऑपरेटर हैं जो कीवर्ड हैं, चाहे पार्सर उन्हें अलग-अलग वर्ग मानते हों या नहीं।
मुझे यकीन नहीं है कि http://docs.python.org/py3k/reference/expressions.html#summarylambda
एक ऑपरेटर के रूप में क्यों वर्णन करता है; मैं निश्चित रूप से नहीं करता। कड़ाई से बोलना यह स्पष्ट रूप से नहीं कहता है कि "lambda
ऑपरेटर सबसे कम प्राथमिकता वाला ऑपरेटर है", यह केवल उस तालिका में lambda
सूचीबद्ध करता है जिसका कॉलम शीर्षक "ऑपरेटर" होता है। शायद यह सिर्फ एक सुविधा थी; कम प्राथमिकता वाली चीज़ के रूप में lambda
का वर्णन करना यह स्पष्ट करने का एक अच्छा तरीका है कि पाइथन lambda x: x + 1
कैसे पार्स करेगा (यह सैद्धांतिक रूप से (lambda x: x) + 1
या lambda x: (x + 1)
हो सकता है)।
मुझे पूरा यकीन है कि ऑपरेटर की बजाय 'लैम्ब्डा' शब्द को कॉल करना समझदारी है। – alberge
@alberge आपका तर्क क्या है? – Paragon
मैंने स्पष्ट रूप से मस्तिष्क से पहले उंगलियों को लगाया। कई पायथन कीवर्ड * ऑपरेटर हैं। वे ओवरलैपिंग सेट प्रतीत होते हैं। – alberge