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





_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a