Junior — Middle
98
¿Cuándo exactamente se activa el método __iter__ durante la iteración sobre un objeto?
Respuesta de la IA
sobes.tech AI
El método __iter__ en Python se llama en el momento en que comienza la iteración sobre un objeto, por ejemplo, al usar un bucle for. Específicamente, cuando el intérprete encuentra la construcción for element in obj:, llama a obj.__iter__() para obtener un iterador.
Este iterador debe implementar el método __next__, que devuelve el siguiente elemento de la secuencia. La iteración continúa hasta que __next__ lance la excepción StopIteration.
Ejemplo:
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)
Aquí, al entrar en el ciclo, se llama a MyRange(3).__iter__(), que devuelve un objeto-iterador (en este caso, el mismo objeto), y luego se llama a __next__ para obtener los elementos.