Sobes.tech
Junior — Middle

Qual é o resultado da execução do método __iter__ em Python?

sobes.tech IA

Resposta da IA

O método __iter__ em Python devolve um iterador do objeto. Este iterador deve implementar o método __next__, que a cada chamada devolve o próximo elemento da sequência, e ao atingir o fim, levanta uma exceção StopIteration.

Assim, a chamada iter(obj) invoca obj.__iter__(), e o objeto retornado é usado em ciclos for e outras construções que trabalham com iteradores.

Exemplo:

class MyRange:
    def __init__(self, n):
        self.n = n
    def __iter__(self):
        self.current = 0
        return self
    def __next__(self):
        if self.current < self.n:
            val = self.current
            self.current += 1
            return val
        else:
            raise StopIteration

for i in MyRange(3):
    print(i)
# Vai mostrar:
# 0
# 1
# 2