Python crea iteratore
Crea un iteratore
Per creare un oggetto/classe come iteratore devi implementare i metodi
__iter__()
e
__next__()
il tuo oggetto.
Come hai appreso nel capitolo Classi/Oggetti Python , tutte le classi hanno una funzione chiamata
__init__()
, che ti consente di eseguire alcune inizializzazioni durante la creazione dell'oggetto.
Il __iter__()
metodo agisce in modo simile, puoi eseguire operazioni (inizializzazione ecc.), Ma deve sempre restituire l'oggetto iteratore stesso.
Il __next__()
metodo consente anche di eseguire operazioni e deve restituire l'elemento successivo nella sequenza.
Esempio
Crea un iteratore che restituisca numeri, a partire da 1, e ogni sequenza aumenterà di uno (restituendo 1,2,3,4,5 ecc.):
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))