Python Criar Iterador
Criar um iterador
Para criar um objeto/classe como um iterador, você precisa implementar os métodos
__iter__()
e
__next__()
seu objeto.
Como você aprendeu no capítulo Classes/Objetos do Python , todas as classes têm uma função chamada
__init__()
, que permite que você inicialize quando o objeto estiver sendo criado.
O __iter__()
método age de forma semelhante, você pode fazer operações (inicialização etc.), mas deve sempre retornar o próprio objeto iterador.
O __next__()
método também permite fazer operações, devendo retornar o próximo item na sequência.
Exemplo
Crie um iterador que retorne números, começando com 1, e cada sequência aumentará em um (retornando 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))