Python Create Iterator
Maak een iterator
Om een object/klasse als iterator te maken, moet je de methoden
__iter__()
en
__next__()
op je object implementeren.
Zoals je hebt geleerd in het hoofdstuk Python-klassen/objecten , hebben alle klassen een functie genaamd
__init__()
, waarmee je wat kunt initialiseren wanneer het object wordt gemaakt.
De __iter__()
methode werkt vergelijkbaar, u kunt bewerkingen uitvoeren (initialiseren enz.), maar moet altijd het iterator-object zelf retourneren.
Met de __next__()
methode kunt u ook bewerkingen uitvoeren en moet u het volgende item in de reeks retourneren.
Voorbeeld
Maak een iterator die getallen retourneert, beginnend met 1, en elke reeks wordt met één verhoogd (retourneert 1,2,3,4,5 enz.):
class MyNumbers:
def __iter__(self):
self.a =
1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))