इन फ़ंक्शन्स को अनाम कहा जाता है क्योंकि वे def कीवर्ड का उपयोग करके मानक तरीके से घोषित नहीं होते हैं। आप छोटे अनाम फ़ंक्शन्स बनाने के लिए lambda कीवर्ड का उपयोग कर सकते हैं।
- लैम्ब्डा फॉर्म्स किसी भी संख्या में आर्गुमेंट्स ले सकते हैं लेकिन एक्सप्रेशन के रूप में केवल एक मान लौटाते हैं। उनमें कमांड्स या मल्टीपल एक्सप्रेशन्स नहीं हो सकते।
- एक अनाम फ़ंक्शन प्रिंट का डायरेक्ट कॉल नहीं हो सकता क्योंकि लैम्ब्डा को एक एक्सप्रेशन की आवश्यकता होती है।
- लैम्ब्डा फ़ंक्शन्स का अपना लोकल नेमस्पेस होता है और वे अपने पैरामीटर लिस्ट और ग्लोबल नेमस्पेस में वालों के अलावा अन्य वेरिएबल्स को एक्सेस नहीं कर सकते।
- हालांकि ऐसा लगता है कि लैम्ब्डा फ़ंक्शन का एक-लाइन संस्करण हैं, वे C या C++ में इंलाइन स्टेटमेंट्स के बराबर नहीं हैं, जिनका उद्देश्य आह्वान के दौरान फ़ंक्शन स्टैक आवंटन को बायपास करके प्रदर्शन कारणों से होता है।
सिंटैक्स
lambda फ़ंक्शन्स का सिंटैक्स केवल एक सिंगल स्टेटमेंट समाहित करता है, जो इस प्रकार है:
lambda [arg1 [,arg2,.....argn]]:expression
उदाहरण
निम्नलिखित उदाहरण दिखाता है कि lambda फ़ंक्शन का रूप कैसे काम करता है:
#!/usr/bin/python # फ़ंक्शन परिभाषा यहां है sum = lambda arg1, arg2: arg1 + arg2 # अब आप sum को फ़ंक्शन के रूप में कॉल कर सकते हैं print "Value of total : ", sum(10, 20) print "Value of total : ", sum(20, 20)
आउटपुट
जब उपरोक्त कोड निष्पादित होता है, तो यह निम्नलिखित परिणाम देता है:
Value of total : 30 Value of total : 40