Bienvenido a la Comunidad de Treehouse

¿Quieres colaborar en errores de código? ¿Tienes errores que necesitan comentarios? ¿Buscas un par de ojos adicionales en tu último proyecto? aquí.

¿Buscas aprender algo nuevo?

Treehouse ofrece una prueba gratuita de siete días para estudiantes nuevos. Obtén acceso a miles de horas de contenido y únete a miles de

Inicia tu prueba gratuita

Python Python Orientado a Objetos Básico Emular funciones integradas Emular funciones integradas

Jorge Grajeda
sello-máscara
.a{fill-rule:evenodd;}techdegree seal-36
Jorge Grajeda
Desarrollo en Python Graduado de Techdegree 8,189 Puntos

¿Qué significa "Asegúrate de tener un método `__iter__` en tu clase"?

book.py
class Libro:
    def __init__(self, autor, title):
        self.autor = autor
        self.title = title

    def __str__(self):
        return f'{self.author}, {self.title}'

    def __eq__(self, otro):
        return self.autor == otro.autor y self.title == otro.title

    def __iter__(self):
        yield from self.libro
bookcase.py
from libro import Libro


class BookCase:
    def __init__(self):
       self.libros = 

    def add_books(self, libro):
        self.libros.append(libro)

1 Respuesta

Jeff Muday
Jeff Muday
28,732 Puntos

¡Estás muy cerca de resolver!

Si cambias de "pestañas" y agregas el __iter__() método allí. Resolverás el Desafío.

¡Buena suerte con tu viaje en Python!

book.py

class Libro:
    def __init__(self, autor, title):
        self.autor = autor
        self.title = title

    def __str__(self):
        return f{self.author}, {self.title}

    def __eq__(self, otro):
        return self.autor == otro.autor y \
            self.title == otro.title

bookcase.py

from libro import Libro

class BookCase:
    def __init__(self):
       self.libros = 

    def add_books(self, libro):
        self.libros.append(libro)

    def __iter__(self):
        yield from self.libros