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

पायथन में "यील्ड" कीवर्ड क्या करता है?

उपज कीवर्ड का उपयोग जनरेटर में किया जाता है। इसके व्यवहार को समझने के लिए आइए पहले देखें कि पुनरावर्तनीय क्या हैं। पायथन वस्तुओं की सूची, फ़ाइल, स्ट्रिंग आदि को पुनरावर्तनीय कहा जाता है। कोई भी वस्तु जिसे वाक्य रचना में for .. का उपयोग करके ट्रेस किया जा सकता है, चलने योग्य है। इटरेटर ऑब्जेक्ट भी एक पुनरावर्तनीय है, लेकिन इसे केवल एक बार ही पुनरावृत्त किया जा सकता है। Iterator ऑब्जेक्ट को iter() फ़ंक्शन का उपयोग करके किसी भी चलने योग्य रूप में प्राप्त किया जा सकता है और इसमें अगली() विधि है जिसके उपयोग से पुनरावृत्ति की जाती है।

>>> L1 = [1,2,3,4]
>>> I1 = iter(L1)
>>> while True:
   try:
      print (next(I1))
   except StopIteration:
sys.exit()

जनरेटर एक फ़ंक्शन के समान दिखाई देता है, लेकिन यह उपज कीवर्ड द्वारा पुनरावर्तक में लगातार आइटम उत्पन्न करता है।

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

निम्नलिखित उदाहरण फाइबोनैचि श्रृंखला में संख्याओं वाला एक पुनरावर्तक उत्पन्न करता है। जनरेटर फ़ंक्शन के लिए प्रत्येक कॉल fibo() फिबोनाची श्रृंखला में क्रमिक तत्व उत्पन्न करता है।

import sys
def fibo(n):
   a,b=0,1
   while True:
      if a>n : return
      yield a
      a, b = b, a+b
f = fibo(20)
while True:
   try:
      print (next(f))
   except StopIteration:
      sys.exit()

  1. रॉ_इनपुट () फ़ंक्शन अजगर में क्या करता है?

    फ़ंक्शन raw_input() उपयोगकर्ता को एक संकेत प्रस्तुत करता है (raw_input([arg]) का वैकल्पिक तर्क), उपयोगकर्ता से इनपुट प्राप्त करता है और उपयोगकर्ता द्वारा डेटा इनपुट को एक में लौटाता है डोरी। उदाहरण के लिए, name = raw_input("What is your name? ") print "Hello, %s." % name यह इनपु

  1. अगर __name__ ==__main__:पायथन में क्या करता है?

    जब पायथन इंटरप्रेटर किसी स्रोत फ़ाइल को पढ़ता है, तो वह उसमें पाए गए सभी कोड को निष्पादित करता है। कोड निष्पादित करने से पहले, यह कुछ विशेष चर परिभाषित करेगा। उदाहरण के लिए, यदि पाइथन दुभाषिया उस मॉड्यूल (स्रोत फ़ाइल) को मुख्य प्रोग्राम के रूप में चला रहा है, तो यह __main__ मान रखने के लिए विशेष __

  1. पायथन में रीलोड () फ़ंक्शन क्या करता है?

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