नेस्टेड फ़ंक्शन स्कोप्स में नॉनलोकल वेरिएबल्स तक पहुंच
पायथन में, नेस्टेड फ़ंक्शन स्कोप्स संलग्न स्कोप्स तक पहुंच प्रदान करते हैं। हालाँकि, नेस्टेड फ़ंक्शन के भीतर एक संलग्न दायरे में एक वेरिएबल को संशोधित करने का प्रयास करने से अनबाउंडलोकल एरर हो सकता है।
इस समस्या को हल करने के लिए, आपके पास कई विकल्प हैं:
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
उचित समाधान चुनना आपके विशिष्ट पायथन संस्करण और आपके कोड के लिए डिज़ाइन संबंधी विचारों पर निर्भर करता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3