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

पायथन में नेस्टेड फ़ंक्शंस से नॉनलोकल वेरिएबल्स तक कैसे पहुंचें?

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

How to Access Nonlocal Variables from Nested Functions in Python?

नेस्टेड फ़ंक्शन स्कोप्स में नॉनलोकल वेरिएबल्स तक पहुंच

पायथन में, नेस्टेड फ़ंक्शन स्कोप्स संलग्न स्कोप्स तक पहुंच प्रदान करते हैं। हालाँकि, नेस्टेड फ़ंक्शन के भीतर एक संलग्न दायरे में एक वेरिएबल को संशोधित करने का प्रयास करने से अनबाउंडलोकल एरर हो सकता है।

इस समस्या को हल करने के लिए, आपके पास कई विकल्प हैं:

1। 'नॉनलोकल' कीवर्ड (पायथन 3) का उपयोग करना:

पायथन 3 और उसके बाद के लिए, नॉनलोकल कीवर्ड आपको नेस्टेड फ़ंक्शंस के भीतर नॉनलोकल वेरिएबल्स को दोबारा जोड़ने की अनुमति देता है।

def outer():
    ctr = 0

    def inner():
        nonlocal ctr
        ctr  = 1

    inner()

2. सूचियों के माध्यम से अप्रत्यक्ष पहुंच (पायथन 2 और 3):

पायथन 2 और 3 दोनों में, आप वेरिएबल को होल्ड करने के लिए एक सूची का उपयोग कर सकते हैं और इसे नेस्टेड फ़ंक्शन के भीतर अप्रत्यक्ष रूप से बढ़ा सकते हैं।

ctr = [0]

def inner():
    ctr[0]  = 1

3. ग्लोबल वेरिएबल्स का उपयोग करना (अनुशंसित नहीं):

ग्लोबल का उपयोग करने से स्कोप को घेरने से वेरिएबल्स तक पहुंच की अनुमति मिल सकती है, लेकिन संभावित टकराव और कोड पठनीयता के मुद्दों के कारण इसे आम तौर पर हतोत्साहित किया जाता है।

def outer():
    global ctr
    ctr = 0

    def inner():
        ctr  = 1

उचित समाधान चुनना आपके विशिष्ट पायथन संस्करण और आपके कोड के लिए डिज़ाइन संबंधी विचारों पर निर्भर करता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729507041 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3