¿Qué métodos convierten un objeto en un iterator?
Opciones
__len__y__getitem__, que permiten indexar y obtener la longitud__iter__y__next__, conStopIterationlanzado al final (Opción correcta)__enter__y__exit__, que gestionan la preparación y la limpieza__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__.