स्पष्टीकरण
इटरेटर अजगर में एक वस्तु है जो पुनरावृत्ति प्रोटोकॉल को लागू करता है। टुपल्स, सूचियों, सेटों को पायथन में इनबिल्ट इटरेटर कहा जाता है। पुनरावृत्ति प्रोटोकॉल में दो प्रकार की विधियाँ हैं।
__iter__() : इस विधि को तब कहा जाता है जब हम एक इटरेटर को इनिशियलाइज़ करते हैं और इसे एक ऑब्जेक्ट वापस करना चाहिए जिसमें अगला () या __next __ () (पायथन 3 में) विधि शामिल हो।
अगला() या __next__() (पायथन 3 में): इस विधि को अगले तत्व को पुनरावृत्ति अनुक्रम से वापस करना चाहिए। जब एक इटरेटर का उपयोग लूप के साथ किया जाता है तो लूप के लिए सीधे इटरेटर ऑब्जेक्ट पर अगला () कॉल करता है।
उदाहरण कोड
# creating a custom iterator
class Pow_of_Two:
def __init__(self, max = 0):
self.max = max
def __iter__(self):
self.n = 0
return self
def __next__(self):
if self.n <= self.max:
result = 2 ** self.n
self.n += 1
return result
else:
raise StopIteration("Message")
a = Pow_of_Two(4)
i = iter(a)
print(i.__next__())
print(next(i))
print(next(i))
print(next(i))
print(next(i))
print(next(i)) आउटपुट
1 2 4 8 16 StopIteration error will be raised