स्पष्टीकरण
इटरेटर अजगर में एक वस्तु है जो पुनरावृत्ति प्रोटोकॉल को लागू करता है। टुपल्स, सूचियों, सेटों को पायथन में इनबिल्ट इटरेटर कहा जाता है। पुनरावृत्ति प्रोटोकॉल में दो प्रकार की विधियाँ हैं।
__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