পাইথনে কন্টেইনারগুলোর ওপর ইটারেশন (iteration) কনসেপ্ট রয়েছে। ইটারেটরের দুটি ভিন্ন ফাংশন রয়েছে। এই ফাংশনগুলো ব্যবহার করে ইউজার-ডিফাইনড ক্লাসে ইটারেশন সাপোর্ট যোগ করা যায়। এই ফাংশনগুলো হলো __iter__() এবং __next__()।
__iter__() মেথড
__iter__() মেথড ইটারেটর অবজেক্ট রিটার্ন করে। যদি একটি ক্লাস বিভিন্ন ধরনের ইটারেশন সাপোর্ট করে, তবে অন্যান্য কাজের জন্য আরও মেথড থাকতে পারে।
__next__() মেথড
__next__() মেথড কন্টেইনার থেকে পরবর্তী এলিমেন্ট রিটার্ন করে। যখন আইটেম শেষ হয়ে যায়, তখন এটি StopIteration এক্সসেপশন উত্থাপন করে।
উদাহরণ কোড
class PowerIter: # এটি x ^ x রিটার্ন করবে যেখানে x range 1 to max-এ আছে def __init__(self, max = 0): self.max = max # ইটারেটরের ম্যাক্স লিমিট সেট 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 # max অতিক্রম করলে এক্সসেপশন রিটার্ন powIterObj = PowerIter(10) powIter = iter(powIterObj) for i in range(10): print(next(powIter))
আউটপুট
1 1 4 27 256 3125 46656 823543 16777216 387420489