पायथन में कंटेनरों पर पुनरावृत्ति अवधारणाएं हैं। Iterators के दो अलग-अलग कार्य हैं। इन कार्यों का उपयोग करके, हम पुनरावृत्ति का समर्थन करने के लिए उपयोगकर्ता परिभाषित कक्षाओं का उपयोग कर सकते हैं। ये कार्य हैं __iter__() और __next__() ।
विधि __iter__()
__iter__() विधि पुनरावर्तक वस्तु लौटाती है। यदि एक वर्ग विभिन्न प्रकार के पुनरावृत्तियों का समर्थन करता है, तो कुछ अन्य कार्य करने के लिए कुछ अन्य तरीके भी हो सकते हैं।
विधि __next__()
__next__() विधि कंटेनर से अगला तत्व लौटाती है। जब आइटम समाप्त हो जाता है, तो वह StopIteration को बढ़ा देगा अपवाद।
उदाहरण कोड
class PowerIter:
#It will return x ^ x where x is in range 1 to max
def __init__(self, max = 0):
self.max = max #Set the max limit of the iterator
def __iter__(self):
self.term = 0
return self
def __next__(self):
if self.term <= self.max:
element = self.term ** self.term
self.term += 1
return element
else:
raise StopIteration #When it exceeds the max, return exception
powIterObj = PowerIter(10)
powIter = iter(powIterObj)
for i in range(10):
print(next(powIter))
आउटपुट
1 1 4 27 256 3125 46656 823543 16777216 387420489