पायथन यील्ड

Python Yield



यील्ड एक पायथन बिल्ट-इन कीवर्ड है जो किसी फ़ंक्शन से मान लौटाता है। फ़ंक्शन का निष्पादन समाप्त नहीं होता है। इसके बजाय, यह कॉलर को मान लौटाता है और फ़ंक्शन के निष्पादन की स्थिति को बनाए रखता है। फ़ंक्शन का निष्पादन अंतिम उपज विवरण से फिर से शुरू होता है। उपज हमें एक मूल्य के बजाय मूल्यों के अनुक्रम का उत्पादन करने की अनुमति देती है। इसका उपयोग फंक्शन बॉडी के अंदर किया जाता है। जिस फ़ंक्शन में उपज विवरण होता है उसे जनरेटर फ़ंक्शन के रूप में जाना जाता है।







कीवर्ड यील्ड करने के कई फायदे हैं। उदाहरण के लिए, यह स्मृति आवंटन को नियंत्रित करता है और स्थानीय चर स्थिति को बचाता है। हालाँकि, यह कोड की जटिलता को बढ़ाता है।



यह आलेख उदाहरण के साथ उपज कीवर्ड के उपयोग की व्याख्या करता है।



उपज का सिंटेक्स

उपज सिंटैक्स सरल और सीधा है। यील्ड को यील्ड कीवर्ड और सिंटैक्स के साथ शुरू किया गया है:





उपजमूल्य

उदाहरण

अब, यील्ड स्टेटमेंट के उपयोग और कार्यों को समझने के लिए उदाहरण देखें। परंपरागत रूप से, रिटर्न कीवर्ड प्रोग्राम के निष्पादन को समाप्त कर देता है और अंत में एक मान लौटाता है, जबकि यील्ड मूल्यों का क्रम देता है। यह मान को मेमोरी में संग्रहीत नहीं करता है और रन टाइम पर कॉलर को मान लौटाता है। नीचे दिए गए उदाहरण में, लीप वर्ष निर्धारित करने के लिए एक जनरेटर फ़ंक्शन को परिभाषित किया गया है। एक छलांग वह वर्ष है जब चार से विभाज्य शेष के रूप में शून्य देता है। यील्ड कीवर्ड कॉलर को लीप ईयर का मान लौटाता है। जैसा कि इसे लीप वर्ष का मूल्य मिलेगा, यह कार्यक्रम के निष्पादन को रोक देगा, मूल्य वापस कर देगा, और फिर निष्पादन को फिर से शुरू करेगा जहां से इसे रोका गया था।

#लीप वर्ष निर्धारित करने के लिए जनरेटर घोषित करना
डीईएफ़लीपफंक(मेरी सूची):
के लियेमैंमेंमेरी सूची:
अगर(मैं%4==0):
#उपज का उपयोग
उपजमैं
#वर्षों की सूची घोषित करना
वर्ष_सूची=[2010,2011,2012,२०१६,2020,2024]
प्रिंट('लीप ईयर वैल्यू प्रिंट करना')
के लियेएक्समेंलीपफंक(वर्ष_सूची):
प्रिंट(एक्स)

उत्पादन



आउटपुट लीप वर्ष की श्रृंखला को दर्शाता है।

आइए एक और उदाहरण देखें जहां जनरेटर फ़ंक्शन विभिन्न संख्याएं और तार उत्पन्न करता है।

#जनरेटर फंक्शन घोषित करना
डीईएफ़myfunc():
उपज 'निशान'
उपज 'जॉन'
उपज 'टेलर'
उपज 'इवान'
उपज 10
उपज बीस
उपज 30
उपज 40
उपज पचास
#जनरेटर फ़ंक्शन के माध्यम से कॉल करना और पुनरावृति करना
के लियेमैंमेंmyfunc():
#मुद्रण मान
प्रिंट(मैं)

उत्पादन

आइए संख्याओं के अनुक्रम के घन मान की गणना और प्रिंट करने के लिए एक जनरेटर फ़ंक्शन लागू करें। हम 1 से 30 तक घन मान उत्पन्न कर रहे हैं।

#घन मान की गणना करने के लिए जनरेटर फ़ंक्शन घोषित करना
डीईएफ़कैलक्यूब():
बजे=1
#अनंत जबकि लूप
जबकि सत्य:
#कैल्क्यूमेटिंग क्यूब
उपजवैल * वैल * वैल
#मान में 1 . की वृद्धि
बजे=वैल +1
प्रिंट('घन मान हैं:')
#जनरेटर फ़ंक्शन को कॉल करना
के लियेमैंमेंकैलक्यूब():
अगरमैं>30:
टूटना
प्रिंट(मैं)

उत्पादन

आउटपुट घन मान 30 से कम दिखाता है।

निष्कर्ष

यील्ड एक पायथन बिल्ट-इन कीवर्ड है जो प्रोग्राम के निष्पादन को समाप्त नहीं करता है और मूल्यों की एक श्रृंखला उत्पन्न करता है। रिटर्न कीवर्ड की तुलना में, यील्ड कीवर्ड कई वैल्यू उत्पन्न करता है और कॉलर को रिटर्न देता है। यह आलेख उदाहरणों के साथ पायथन यील्ड की व्याख्या करता है।