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

Python में "yield" कीवर्ड क्या करता है?

yield कीवर्ड जेनरेटर में उपयोग किया जाता है। इसके व्यवहार को समझने के लिए आइए पहले देखें कि इटरेबल्स क्या हैं। Python ऑब्जेक्ट्स लिस्ट, फाइल, स्ट्रिंग आदि को इटरेबल्स कहा जाता है। कोई भी ऑब्जेक्ट जिसे for..in सिंटैक्स का उपयोग करके ट्रैवर्स किया जा सकता है, इटरेबल है। इटरेटर ऑब्जेक्ट भी एक इटरेबल है, लेकिन इसे केवल एक बार इटरेट किया जा सकता है। इटरेटर ऑब्जेक्ट किसी भी इटरेबल से iter() फंक्शन का उपयोग करके प्राप्त किया जा सकता है और इसमें next() मेथड होता है जिसका उपयोग करके इटरेशन किया जाता है।

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

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

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

निम्न उदाहरण फाइबोनैचि श्रृंखला में संख्याओं वाला एक इटरेटर जनरेट करता है। जेनरेटर फंक्शन 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() फ़ंक्शन यूज़र को प्रॉम्प्ट प्रस्तुत करता है (वैकल्पिक आर्गुमेंट raw_input([arg])), यूज़र से इनपुट प्राप्त करता है और यूज़र द्वारा इनपुट किए गए डेटा को स्ट्रिंग में लौटाता है। उदाहरण के लिए, name = raw_input(What is your name? ) print Hello, %s. % name यह input() से भिन्न है जिसमें बाद व

  1. - पायथन में `if __name__ == "__main__":` का क्या अर्थ है?

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

  1. - Python में reload() Function क्या करता है?

    reload() Function reload(moduleName) Function एक Previously Loaded Module को Reload करता है (यह मानते हुए कि आपने इसे import moduleName Syntax के साथ Load किया था)। यह Conversational Use के लिए Intended है, जहां आपने किसी Module के Source File को Edit किया है और Python को छोड़े बिना और इसे फिर से S