
Il metodo __next__() in Python
Nel linguaggio Python il metodo __next__() è utilizzato nelle classi iteratore per ottenere ogni elemento alla volta.
oggetto.__next__()
Il metodo restituisce un elemento alla volta, dal primo all'ultimo, dell'oggetto iteratore.
Una volta restituito l'ultimo elemento, ogni ulteriore utilizzo del metodo __next__() solleva un'eccezione StopIteration.
Ecco un esempio pratico.
Per prima cosa crea un oggetto iterabile, ad esempio una lista.
>>> myList=[1,2,3]
Poi converti la lista in un iteratore tramite il metodo __iter__() o, in alternativa, con la funzione iter()
>>> obj=myList.__iter__()
Una volta ottenuto l'iteratore, puoi accedere agli elementi della lista , uno dopo l'altro, utilizzando il metodo __next__()
>>>obj.__next__()
1
>>>obj.__next__()
2
>>>obj.__next__()
3
Ogni volta che richiami il metodo __next__(), questo restituisce l'elemento successivo.
Dopo aver restituito l'ultimo elemento della lista, se provi a eseguire ulteriormente il metodo __next__(), questo solleva l'eccezione StopIteration. Vuol dre che non ci sono più elementi da iterare.
>>>obj.__next__()
Traceback (most recent call last):
File "/home/main.py", line 6, in <module>
print(obj.__next__())
StopIteration
Ricorda che puoi accedere agli elementi dell'iteratore anche usando la funzione next() di Python