Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में वापसी के बजाय उपज का उपयोग कब करें?

संक्षेप में, जब भी नियंत्रण आपके प्रोग्राम में रिटर्न स्टेटमेंट तक पहुंचता है, तो प्रोग्राम का निष्पादन समाप्त हो जाता है और शेष स्टेटमेंट निष्पादित नहीं होंगे।

हालांकि, उपज के मामले में, जब भी नियंत्रण आपके कार्यक्रम में उपज विवरण तक पहुंचता है, तो आपके कार्यक्रम का निष्पादन रोक दिया जाता है और बाद में हम अन्य बयानों को कार्य में जारी रख सकते हैं।

आइए दोनों कथनों को विस्तार से समझते हैं।

उपज

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

def func():
   yield 1
   yield 2
   yield 3

for num in func():
   print(num * num)

आउटपुट

1
4
9

उपरोक्त कार्यक्रम में, फ़ंक्शन को आमंत्रित करने वाला लूप फ़ंक फ़ंक्शन के पूरा होने पर पूरा हो जाएगा - या तो फ़ंक्शन के अंत (func ()) या रिटर्न स्टेटमेंट से मिलता है।

हालांकि, कोई भी नया लूप जो समान जनरेटर फ़ंक्शन का उपयोग करता है, फ़ंक्शन को फिर से प्रारंभ से निष्पादित करेगा।

वापसी

एक वापसी विवरण,

  • किसी फ़ंक्शन के निष्पादन को रोकने के लिए उपयोग किया जाता है और वैकल्पिक रूप से कॉलर को एक मान लौटाता है। एक फ़ंक्शन जिसमें रिटर्न होता है (लेकिन उपज नहीं) लूप में उपयोग नहीं किया जा सकता है (उपरोक्त उपज के विपरीत)।

  • यदि कोई फ़ंक्शन जिसे पहले निष्पादित किया गया है, फिर से कॉल किया जाता है, तो फ़ंक्शन प्रारंभ से निष्पादन शुरू होता है (उपरोक्त उपज के विपरीत)।

रिटर्न या यील्ड का उपयोग कब करें?

जब हम किसी अनुक्रम पर पुनरावृति करना चाहते हैं तो उपज का उपयोग करने की अनुशंसा की जाती है, हालांकि, संसाधनों की कमी के कारण या बस पूरे अनुक्रम को स्मृति में संग्रहीत नहीं करना चाहते हैं। अन्य मामलों के लिए हम रिटर्न स्टेटमेंट का उपयोग करने के बारे में सोच सकते हैं।

आइए पूर्णांक संख्या का वर्ग उत्पन्न करने के लिए यील्ड स्टेटमेंट का उपयोग करके एक और प्रोग्राम देखें।

def Square():
   i = 1;
   # An Infinite loop to generate squares
   while True:
      yield i*i
      i += 1 # Next execution resumes from this point
for num in Square():
   if num > 100:
      break
   print(num)

आउटपुट

1
4
9
16
25
36
49
64
81
100

यील्ड स्टेटमेंट का इस्तेमाल आम तौर पर ट्राई के ट्राई क्लॉज में नहीं किया जाता है। अंत में ब्लॉक करें क्योंकि इस बात की कोई गारंटी नहीं है कि जनरेटर को फिर से शुरू किया जाएगा, इसलिए इस बात की कोई गारंटी नहीं है कि अंत में ब्लॉक कभी भी निष्पादित होगा।


  1. एक्सेल में वीलुकअप के बजाय इंडेक्स-मैच का उपयोग कब करें

    आपमें से जो एक्सेल के अच्छे जानकार हैं, उनके लिए VLOOKUP से बहुत अधिक परिचित होने की संभावना है। समारोह। VLOOKUP फ़ंक्शन का उपयोग एक ही पंक्ति में कुछ मेल खाने वाले टेक्स्ट के आधार पर किसी भिन्न सेल में मान खोजने के लिए किया जाता है। अगर आप अभी भी VLOOKUP . में नए हैं फ़ंक्शन, आप एक्सेल में VLOOKUP

  1. C# में यील्ड रिटर्न का क्या उपयोग है?

    यील्ड कीवर्ड संग्रह पर कस्टम स्टेटफुल पुनरावृत्ति करने में मदद करता है। मतलब जब हम यील्ड कीवर्ड का इस्तेमाल करते हैं तो कंट्रोल कॉलर फंक्शन से सोर्स पर आगे-पीछे चलता है और इसके विपरीत। उदाहरण using System; using System.Collections.Generic; namespace DemoApplication {    class Program { &nb

  1. फ़ंक्शन को पायथन में एक आकृति कैसे लौटाएं (Matplotlib का उपयोग करके)?

    फ़ंक्शन को पायथन में एक आंकड़ा वापस करने के लिए (Matplotlib का उपयोग करके), हम निम्नलिखित कदम उठा सकते हैं - फिगर साइज सेट करें और सबप्लॉट्स के बीच और आसपास पैडिंग को एडजस्ट करें। बनाएं x और y डेटा अंक numpy का उपयोग कर रहे हैं। एक फ़ंक्शन बनाएं प्लॉट(x, y) जो figure() . का उपयोग करके एक नय