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