रिटर्न स्टेटमेंट एक पायथन फ़ंक्शन को बाहर निकलने और उसके कॉलर को एक मान वापस देने का कारण बनता है। सामान्य रूप से कार्यों का उद्देश्य इनपुट लेना और कुछ वापस करना है। एक रिटर्न स्टेटमेंट, एक बार निष्पादित होने के बाद, फ़ंक्शन के निष्पादन को तुरंत समाप्त कर देता है, भले ही वह फ़ंक्शन में अंतिम स्टेटमेंट न हो।
वे फ़ंक्शन जो मान लौटाते हैं, उन्हें कभी-कभी फलदायी फ़ंक्शन कहा जाता है।
उदाहरण
दिया गया कोड निम्न आउटपुट देता है
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
हम दूसरी बार mygenerator में i के लिए प्रदर्शन नहीं कर सकते क्योंकि जनरेटर का उपयोग केवल एक बार किया जा सकता है:वे 0 की गणना करते हैं, फिर इसके बारे में भूल जाते हैं और 1, 4 की गणना करते हैं और एक-एक करके 9 की गणना करते हैं।
यील्ड
यील्ड एक कीवर्ड है जिसका उपयोग रिटर्न की तरह किया जाता है, सिवाय इसके कि फ़ंक्शन एक जनरेटर लौटाएगा।
जनरेटर से रिटर्न प्राप्त करने के लिए हम निम्नलिखित कोड का उपयोग करते हैं
उदाहरण
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 <module> print(next(mygenerator)) StopIterationमें
स्पष्टीकरण
उपरोक्त उदाहरण में यील्ड स्टेटमेंट ने mygenerator. इसे केवल एक बार ही इस्तेमाल किया जा सकता है। हम गणना करने के लिए अगला (mygenerator) कमांड का उपयोग करते हैं; इसे एक बार इस्तेमाल किया जा सकता है:यह पहले 0 की गणना करता है, फिर इसके बारे में भूल जाता है और फिर दूसरी बार यह 1 की गणना करता है, तीसरी बार 4 और चौथा 9 की गणना करता है, फिर पांचवीं बार यह स्टॉपइटरेशन की त्रुटि को फेंक देता है क्योंकि सूची तत्व समाप्त हो गए हैं।