ব্যাখ্যা
ইটারেটর হল পাইথনের একটি বস্তু যা পুনরাবৃত্তি প্রোটোকল প্রয়োগ করে। পাইথনে টিপল, তালিকা, সেটকে অন্তর্নির্মিত পুনরাবৃত্তিকারী বলা হয়। পুনরাবৃত্তি প্রোটোকলে দুই ধরনের পদ্ধতি রয়েছে।
__iter__(): এই পদ্ধতিটি বলা হয় যখন আমরা একটি পুনরাবৃত্ত শুরু করি এবং এটিকে অবশ্যই একটি বস্তু ফেরত দিতে হবে যাতে পরবর্তী() বা __next__()(Python 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