⊗pyPmFnCl 23 of 129 menu

पायथन में क्लोजर

क्लोजर (closure) से तात्पर्य एक फ़ंक्शन के साथ-साथ उन सभी बाहरी वेरिएबल्स से है जो उसके लिए एक्सेसिबल हैं।

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

मान लीजिए कि हमारे पास निम्नलिखित फ़ंक्शन outer है, जिसमें वेरिएबल i और आंतरिक फ़ंक्शन inner घोषित है। इसमें i में एक जोड़ा जाएगा। वेरिएबल i को सही ढंग से काम कराने के लिए, हम इसमें nonlocal इंस्ट्रक्शन जोड़ते हैं:

def outer(): i = 0 def inner(): nonlocal i i += 1 print(i) return inner

अब बाहरी फ़ंक्शन को वेरिएबल res में रखते हैं और इसे कोष्ठकों के साथ कॉल करते हैं:

res = outer() res() # 1 प्रिंट करेगा

आइए res को कई बार कॉल करते हैं। कोड निष्पादित होने के बाद काउंटर i हर बार एक से बढ़ जाएगा:

res() # 2 प्रिंट करेगा res() # 3 प्रिंट करेगा res() # 4 प्रिंट करेगा

हालाँकि, यहाँ एक महत्वपूर्ण बारीकियाँ है - फ़ंक्शन outer का हर कॉल अपना काउंटर बढ़ाएगा। आइए पहले कॉल outer को वेरिएबल res1 में और दूसरे कॉल को वेरिएबल res2 में रिकॉर्ड करते हैं। फिर उन्हें क्रमिक रूप से कंसोल में प्रिंट करते हैं:

res1 = outer() res1() # 1 प्रिंट करेगा res1() # 2 प्रिंट करेगा res1() # 3 प्रिंट करेगा res2 = outer() res2() # 1 प्रिंट करेगा res2() # 2 प्रिंट करेगा res2() # 3 प्रिंट करेगा

निम्नलिखित कोड दिया गया है:

def outer(): i = 10 def inner(): nonlocal i i -= 2 print(i) return inner res1 = outer() res1() res1() res2 = outer() res2() res2() res2()

बताएं कि कंसोल में क्या प्रिंट होगा।

एक ऐसा फ़ंक्शन बनाएं, जिसका हर कॉल अगला फाइबोनैचि संख्या उत्पन्न करे।

एक ऐसा फ़ंक्शन बनाएं, जो एक रेंज में रैंडम इंटीजर नंबर दे, लेकिन ऐसा कि लगातार दो बार एक ही नंबर न आए।

हिन्दी
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
हम साइट के कार्य, विश्लेषण और व्यक्तिगतकरण के लिए कुकीज़ का उपयोग करते हैं। डेटा प्रसंस्करण गोपनीयता नीति के अनुसार किया जाता है।
सभी स्वीकार करें कॉन्फ़िगर करें अस्वीकार करें