توقف تکرار(StopIteration)

مثال بالا برای همیشه ادامه خواهد داشت اگر عبارات بعدی () کافی داشته باشید، یا اگر در
حلقه برای.


برای جلوگیری از ادامه تکرار برای همیشه، می‌توانیم از آن استفاده کنیم
عبارت StopIteration.


در روش __next__()، می‌توانیم یک شرط پایان‌دهنده اضافه کنیم تا اگر تکرار چند بار مشخص انجام شود، خطا ایجاد شود:




مثال


Stop after 20 iterations:



class MyNumbers:
  def __iter__(self):
    self.a =
1
    return self

  def __next__(self):
   
if self.a <= 20:
      x = self.a
     
self.a += 1
      return x
   
else:
      raise StopIteration

myclass =
MyNumbers()
myiter = iter(myclass)

for x in myiter:
 
print(x)