Iterador de creación de Python
Crear un iterador
Para crear un objeto/clase como un iterador, debe implementar los métodos
__iter__()
y
__next__()
su objeto.
Como aprendió en el capítulo Clases/Objetos de Python , todas las clases tienen una función llamada
__init__()
, que le permite realizar algunas inicializaciones cuando se crea el objeto.
El __iter__()
método actúa de manera similar, puede realizar operaciones (inicialización, etc.), pero siempre debe devolver el objeto iterador en sí.
El __next__()
método también le permite realizar operaciones y debe devolver el siguiente elemento de la secuencia.
Ejemplo
Cree un iterador que devuelva números, comenzando con 1, y cada secuencia aumentará en uno (devolviendo 1,2,3,4,5, etc.):
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))