Repaso
English
PythonIntermedioPY-28

¿Qué métodos convierten un objeto en un iterator?

Opciones

  1. __len__ y __getitem__, que permiten indexar y obtener la longitud
  2. __iter__ y __next__, con StopIteration lanzado al final (Opción correcta)
  3. __enter__ y __exit__, que gestionan la preparación y la limpieza
  4. __call__ y __next__, que permiten llamar y avanzar

Respuesta

__iter__ y __next__ (lanzando StopIteration al final)

Por qué

Un iterator es un objeto que te da el siguiente valor cada vez que llamas a next() sobre él.

Necesita __next__ (devuelve el siguiente valor, o lanza StopIteration cuando no hay más) e __iter__ (se devuelve a sí mismo).

Un bucle for llama a estos métodos por ti sin que lo veas.

Recuerda

Iterator = __iter__ + __next__.

Términos clave

Practica esta pregunta en Repaso