लैम्ब्डा फ़ंक्शंस में वेरिएबल्स को कैप्चर करना
लूप के भीतर लैम्ब्डा फ़ंक्शंस का उपयोग करते समय, उनके वेरिएबल दायरे को समझना महत्वपूर्ण है। स्थानीय चर की प्रतिलिपि बनाने वाले नियमित कार्यों के विपरीत, लैम्ब्डा फ़ंक्शन उन्हें संदर्भित करते हैं। funcList.append(lambda: callback(m))
यहां, लैम्ब्डा फ़ंक्शन संलग्न दायरे से m का मान कैप्चर करता है। हालाँकि, लूप समाप्त होने के बाद, m अंतिम मान ('mi') बरकरार रखता है। जब प्रत्येक लैम्ब्डा फ़ंक्शन को कॉल किया जाता है, तो यह इस साझा एम वेरिएबल को संदर्भित करता है, जिसके परिणामस्वरूप आउटपुट "mi" कई बार होता है। डिफ़ॉल्ट तर्क":
for m in ('do', 're', 'mi'):
funcList.append(lambda: callback(m))
m को एक ही नाम के साथ एक डिफ़ॉल्ट पैरामीटर बनाकर, प्रत्येक लैम्ब्डा अपेक्षित आउटपुट सुनिश्चित करते हुए, वेरिएबल का अपना उदाहरण कैप्चर करता है:
"करो"
"पुनः""मील"
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3