पायथन यील्ड बनाम रिटर्न

Python Yield Vs Return



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

यह लेख उदाहरण के साथ उपज और रिटर्न के बीच के अंतर को रेखांकित करता है।







यील्ड और रिटर्न के बीच अंतर

शुरू करने के लिए, उपज और वापसी के बीच कई प्रमुख अंतर हैं। आइए पहले चर्चा करें कि ये क्या हैं।



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

उदाहरण 1: रिटर्न बनाम यील्ड

अब, आइए उदाहरणों के माध्यम से रिटर्न और यील्ड स्टेटमेंट के बीच अंतर देखें। नीचे दिए गए उदाहरण कार्यक्रम में, हमने कई रिटर्न स्टेटमेंट का उपयोग किया है। आप देख सकते हैं कि प्रोग्राम का निष्पादन पहले रिटर्न स्टेटमेंट के बाद समाप्त हो जाएगा, और शेष कोड निष्पादित नहीं किया जाएगा।



#a रिटर्न स्टेटमेंट की कार्यप्रणाली दिखाने का कार्यक्रम

#संख्या चर को परिभाषित करना

संख्या 1=10

#संख्या चर को परिभाषित करना

अंक २=बीस

#अंकगणितीय संचालन करने के लिए एक फ़ंक्शन बनाना

डीईएफ़ मैथओपी():

#योग मूल्य की गणना

वापसीसंख्या 1+अंक २

#अंतर की गणना

वापसीसंख्या 1-अंक २

#गुणा मान की गणना

वापसीसंख्या 1*अंक २

#विभाजन मान की गणना

वापसीसंख्या 1/अंक २

#फ़ंक्शन को कॉल करना

प्रिंट(गणित())

उत्पादन





आउटपुट में, यह देखा जा सकता है कि फ़ंक्शन केवल पहला मान लौटाता है, और प्रोग्राम समाप्त हो जाता है।



एकाधिक रिटर्न स्टेटमेंट के साथ एक समान कार्य करने के लिए, हमें प्रत्येक प्रकार के अंकगणितीय ऑपरेशन के लिए चार अलग-अलग फ़ंक्शन बनाने होंगे।

#a रिटर्न स्टेटमेंट की कार्यप्रणाली दिखाने का कार्यक्रम

#संख्या चर को परिभाषित करना

संख्या 1=10

#संख्या चर को परिभाषित करना

अंक २=बीस

#अंकगणितीय संचालन करने के लिए एक फ़ंक्शन बनाना

डीईएफ़ समओपी():

#योग मूल्य की गणना

वापसीसंख्या 1+अंक २

डीईएफ़ घटानाओपी():

#अंतर की गणना

वापसीसंख्या 1-अंक २

डीईएफ़ गुणनOP():

#गुणा मान की गणना

वापसीसंख्या 1*अंक २

डीईएफ़ डिवीजनओपी():

#विभाजन मान की गणना

वापसीसंख्या 1/अंक २

#योग फ़ंक्शन को कॉल करना

प्रिंट('योग मूल्य है:',समओपी())

#घटाव फ़ंक्शन को कॉल करना

प्रिंट('अंतर मान है:',घटानाओपी())

#गुणन फ़ंक्शन को कॉल करना

प्रिंट('गुणन मान है:',गुणनओपी())

#डिवीजन फंक्शन को कॉल करना

प्रिंट('विभाजन मूल्य है:',डिवीजनओपी())

उत्पादन

हम इन एकाधिक अंकगणितीय परिचालनों को एक जनरेटर फ़ंक्शन के अंदर एकाधिक उपज विवरण के साथ निष्पादित कर सकते हैं।

#a उपज विवरण के कार्य को दिखाने के लिए कार्यक्रम

#संख्या चर को परिभाषित करना

संख्या 1=10

#संख्या चर को परिभाषित करना

अंक २=बीस

#अंकगणितीय संचालन करने के लिए एक फ़ंक्शन बनाना

डीईएफ़ मैथओपी():

#योग मूल्य की गणना

उपजसंख्या 1+अंक २

#अंतर की गणना

उपजसंख्या 1-अंक २

#गुणा मान की गणना

उपजसंख्या 1*अंक २

#विभाजन मान की गणना

उपजसंख्या 1/अंक २

#फ़ंक्शन को कॉल करना

प्रिंट('मूल्यों को प्रिंट करना:')

#लूप के लिए जेनरेटर ऑब्जेक्ट से वैल्यू एक्सेस करने के लिए

के लियेमैं गणित में():

प्रिंट(मैं)

उत्पादन

उदाहरण 2: रिटर्न बनाम यील्ड

आइए रिटर्न और यील्ड स्टेटमेंट का एक और उदाहरण देखें। दिए गए उदाहरण में, हमारे पास संख्याओं की एक सूची है जो एक तर्क के रूप में mod() फ़ंक्शन को पास की जाती है। हम सूची के प्रत्येक नंबर पर मॉड्यूलस ऑपरेशन कर रहे हैं और जांच कर रहे हैं कि वे संख्याएं क्या हैं जब 10 रिटर्न शून्य से शेष मान के रूप में विभाजित किया जाता है।

सबसे पहले, आइए इस उदाहरण को रिटर्न स्टेटमेंट के साथ अपनी पायथन लिपि में लागू करें।

#संख्याओं की सूची को परिभाषित करना

मेरी सूची=[10,बीस,25,30,35,40,पचास]

#मॉड्यूलस ऑपरेशन करने के लिए एक फ़ंक्शन को परिभाषित करना

डीईएफ़ मोड(मेरी सूची):

के लियेमैं अपनी सूची में:

#मॉड्यूलस ऑपरेशन करना

अगर(मैं%10==0):

वापसीमैं

प्रिंट(के खिलाफ(मेरी सूची))

उत्पादन

रिटर्न स्टेटमेंट केवल कॉलर को पहला नंबर लौटाता है और फ़ंक्शन के निष्पादन को समाप्त करता है।

अब, उसी उदाहरण को हमारी पायथन लिपि में यील्ड स्टेटमेंट के साथ लागू करते हैं।

#संख्याओं की सूची को परिभाषित करना

मेरी सूची=[10,बीस,25,30,35,40,पचास]

#मॉड्यूलस ऑपरेशन करने के लिए एक फ़ंक्शन को परिभाषित करना

डीईएफ़ मोड(मेरी सूची):

के लियेमैं अपनी सूची में:

#मॉड्यूलस ऑपरेशन करना

अगर(मैं%10==0):

#उपज विवरण

उपजमैं

के लियेमैं मोड में(मेरी सूची):

प्रिंट(मैं)

उत्पादन

निष्कर्ष

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