हां , हम पायथन में इटरेटर्स का उपयोग करके एक जनरेटर बना सकते हैं इटरेटर बनाना आसान है, हम कीवर्ड यील्ड स्टेटमेंट का उपयोग करके एक जनरेटर बना सकते हैं।
पायथन जनरेटर इटरेटर बनाने का एक आसान और सरल तरीका है। और मुख्य रूप से एक फ़ंक्शन को घोषित करने के लिए उपयोग किया जाता है जो एक पुनरावर्तक की तरह व्यवहार करता है।
जनरेटर एक ऐसा फ़ंक्शन है जिसे हम एक समय में एक से अधिक मान को पुनरावृति कर सकते हैं, संभवतः एक दिन-प्रतिदिन के जीवन में, प्रत्येक प्रोग्रामर पुनरावृत्त वस्तुओं जैसे सूचियों, स्ट्रिंग्स और डिक्ट, आदि का उपयोग करेगा।
एक पुनरावर्तक एक वस्तु है जिसे लूपिंग के माध्यम से पुनरावृत्त किया जा सकता है।
निम्नलिखित उदाहरण से पता चलता है कि जेनरेटर पायथन में यील्ड स्टेटमेंट पेश करते हैं, यह एक मान वापस करने जैसा काम करता है।
उदाहरण
def generator(): print("program working sucessfully") yield 'x' yield 'y' yield 'z' generator()
आउटपुट
<generator object generator at 0x000000CF81D07390>. पर
लूप के लिए भी उपयोग करके हम एक जनरेटर बना सकते हैं
उदाहरण
for i in generator(): print(i)
आउटपुट
program working sucessfully x y z
इटरेटर ऑब्जेक्ट दो विधियों का समर्थन करते हैं 1.__iter__method और 2.__अगला__विधि
__iter__ विधि पुनरावृत्त वस्तु को ही लौटाती है। मुख्य रूप से इसका उपयोग लूप और स्टेटमेंट में किया जाता है।
__next__ विधि पुनरावर्तक से अगला मान लौटाती है यदि कोई और आइटम वापस नहीं आता है तो उसे StopIteration अपवाद उठाना चाहिए।
उदाहरण
class function(object): def __init__(self, lowtemp, hightemp): self.current = lowtemp self.high = hightemp def __iter__(self): 'Returns itself as an iterator object' return self def __next__(self): 'Returns the next value till current is lower than high' if self.current > self.high: raise StopIteration else: self.current += 1 return self.current - 1 c = function(3,20) for i in c: print(i, end=' ')
आउटपुट
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20