[Python] Iteratori iterabile
Franky gmail
fgthct a gmail.com
Mer 5 Lug 2017 20:53:44 CEST
Ciao,
Leggendo la pep-0234, in sintesi un oggetto iteratore deve avere due
metodi: oggetto.__iter__() e oggetto.__next__). correggetemi se ho
inteso male.
faccio un esempio:
creo una lista lista=['pippo', 'pluto', 'paperoga']
hasattr(lista,'__iter__') # vero
hasattr(lista,'__next__') # falso
quindi una lista (succede la stessa cosa anche con un set) non è un
iteratore perchè non possiede entrambi i metodi sopraccitati. Però se
creo un oggetto di tipo lista, possiede entrambi i metodi:
lista1 = lista.__iter__()
hasattr(lista1,'__iter__') #vero
hasattr(lista1,'__next__') #vero
lista1.__next__()
'pippo'
lista1.__next__()
'pluto'
lista1.__next__()
'paperoga'
lista1.__next__()
StopIteration
Devo desumere che le istanze di un iterabile non iteratore possono
essere iteratori?
grazie per la pazienza
Maggiori informazioni sulla lista
Python