ব্যাখ্যা
ইটারেটর হল পাইথনের একটি বস্তু যা পুনরাবৃত্তি প্রোটোকল প্রয়োগ করে। পাইথনে টিপল, তালিকা, সেটকে অন্তর্নির্মিত পুনরাবৃত্তিকারী বলা হয়। পুনরাবৃত্তি প্রোটোকলে দুই ধরনের পদ্ধতি রয়েছে।
__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