"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > लूप्स में लैम्ब्डा फ़ंक्शंस में वेरिएबल्स को ठीक से कैसे कैप्चर करें?

लूप्स में लैम्ब्डा फ़ंक्शंस में वेरिएबल्स को ठीक से कैसे कैप्चर करें?

2024-11-07 को प्रकाशित
ब्राउज़ करें:334

How to Properly Capture Variables in Lambda Functions in Loops?

लैम्ब्डा फ़ंक्शंस में वेरिएबल्स को कैप्चर करना

लूप के भीतर लैम्ब्डा फ़ंक्शंस का उपयोग करते समय, उनके वेरिएबल दायरे को समझना महत्वपूर्ण है। स्थानीय चर की प्रतिलिपि बनाने वाले नियमित कार्यों के विपरीत, लैम्ब्डा फ़ंक्शन उन्हें संदर्भित करते हैं। funcList.append(lambda: callback(m))

यहां, लैम्ब्डा फ़ंक्शन संलग्न दायरे से m का मान कैप्चर करता है। हालाँकि, लूप समाप्त होने के बाद, m अंतिम मान ('mi') बरकरार रखता है। जब प्रत्येक लैम्ब्डा फ़ंक्शन को कॉल किया जाता है, तो यह इस साझा एम वेरिएबल को संदर्भित करता है, जिसके परिणामस्वरूप आउटपुट "mi" कई बार होता है। डिफ़ॉल्ट तर्क":

for m in ('do', 're', 'mi'):
    funcList.append(lambda: callback(m))

m को एक ही नाम के साथ एक डिफ़ॉल्ट पैरामीटर बनाकर, प्रत्येक लैम्ब्डा अपेक्षित आउटपुट सुनिश्चित करते हुए, वेरिएबल का अपना उदाहरण कैप्चर करता है:

"करो"

"पुनः"
"मील"
विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: 1729329734 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] पर संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3