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

पायथन फंक्शन्स ऑब्जेक्ट्स को कैसे रिटर्न/यील्ड करते हैं?

return स्टेटमेंट पायथन फंक्शन को बाहर निकलने और अपने कॉलर को मान वापस देने का कारण बनता है। फंक्शन्स का उद्देश्य आम तौर पर इनपुट लेना और कुछ वापस करना होता है। एक बार निष्पादित होने पर return स्टेटमेंट तुरंत फंक्शन के निष्पादन को समाप्त कर देता है, भले ही यह फंक्शन में अंतिम स्टेटमेंट न हो।

जो फंक्शन्स मान लौटाते हैं उन्हें कभी-कभी फ्रूटफुल फंक्शन्स कहा जाता है।

उदाहरण

दिया गया कोड निम्न आउटपुट देता है:

def sum(a,b):
    return a+b
sum(5,16)

आउटपुट

21

जेनरेटर्स

जेनरेटर्स इटरेटर्स या इटरेबल्स होते हैं जैसे सूचियाँ और टपल्स, लेकिन आप उन पर केवल एक बार इटरेट कर सकते हैं। ऐसा इसलिए है क्योंकि वे सभी मानों को मेमोरी में स्टोर नहीं करते, वे मानों को ऑन-द-फ्लाई जेनरेट करते हैं:

उदाहरण

mygenerator = (x*x for x in range(4))
for i in mygenerator:
    print i,

आउटपुट

0 1 4 9

हम for i in mygenerator को दूसरी बार नहीं कर सकते क्योंकि जेनरेटर्स का उपयोग केवल एक बार किया जा सकता है: वे 0 की गणना करते हैं, फिर उसके बारे में भूल जाते हैं और 1, 4 की गणना करते हैं और अंत में 9 की गणना करते हैं, एक-एक करके।

Yield

yield एक कीवर्ड है जिसका उपयोग return की तरह किया जाता है, सिवाय इसके कि फंक्शन एक जेनरेटर लौटाएगा।

हम जेनरेटर से रिटर्न एक्सेस करने के लिए निम्न कोड का उपयोग करते हैं:

उदाहरण

def createGenerator():
    for i in range(4):
        yield i*i
# this code creates a generator
mygenerator = createGenerator()
print(mygenerator) # mygenerator is an object!
# for i in mygenerator:
#     print i,
print(next(mygenerator))
print(next(mygenerator))
print(next(mygenerator))
print(next(mygenerator))
print(next(mygenerator))

आउटपुट

<generator object createGenerator at 0xb71e27fc> 0 1 4 9 Traceback (most recent call last):
  File "yieldgen1.py", line 12, in 
    print(next(mygenerator))
StopIteration

व्याख्या

उपरोक्त उदाहरण में yield स्टेटमेंट ने mygenerator बनाया। इसका उपयोग केवल एक बार किया जा सकता है। हम next(mygenerator) कमांड का उपयोग गणना के लिए करते हैं; इसका उपयोग एक बार किया जा सकता है: यह पहले 0 की गणना करता है, फिर उसके बारे में भूल जाता है और दूसरी बार 1 की गणना करता है, तीसरी बार 4 और चौथी बार 9 की गणना करता है, फिर पांचवीं बार यह StopIteration एरर फेंकता है क्योंकि सूची तत्व समाप्त हो गए हैं।

  1. - पायथन: डिक्शनरी कैसे प्रिंट करें

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

  1. पायथन में पैटर्न कैसे प्रिंट करें पायथन में पैटर्न कैसे प्रिंट करें

    पायथन में पैटर्न्स को नेस्टेड फॉर लूप्स का उपयोग करके प्रिंट किया जा सकता है। बाहरी लूप का उपयोग पंक्तियों की संख्या के माध्यम से इटरेट करने के लिए किया जाता है जबकि आंतरिक लूप का उपयोग स्तंभों की संख्या को संभालने के लिए किया जाता है। प्रिंट स्टेटमेंट को आवश्यकतानुसार विभिन्न पैटर्न बनाने के लिए मॉ

  1. - पायथन फंक्शन फंक्शन कैसे लौटा सकता है?

    पायथन फर्स्ट-क्लास फंक्शन्स का समर्थन करता है। वास्तव में, पायथन में सभी फंक्शन्स फर्स्ट-क्लास फंक्शन्स हैं। पायथन फंक्शन्स से फंक्शन्स लौटा सकता है, फंक्शन्स को सूचियों जैसे संग्रह में स्टोर कर सकता है और आम तौर पर उन्हें किसी भी वेरिएबल या ऑब्जेक्ट की तरह व्यवहार कर सकता है। फंक्शन्स के अंदर फंक्श