Python Stop iteration
StopIteration
Abychom předešli tomu, že iterace bude pokračovat navždy, můžeme použít
StopIteration
příkaz.
V __next__()
metodě můžeme přidat ukončovací podmínku pro vyvolání chyby, pokud je iterace provedena zadaným počtem opakování:
Příklad
Zastavit po 20 iteracích:
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)