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

Estoy recibiendo Error de Aserción: False no es verdadero: Asegúrate de tener el método __iter_ en tu clase. ¿Qué estoy haciendo mal?

class Book: init(self, author, title):

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

def __eq__(self, other):
    return self.author == other.author and self.title == other.title

class Bookcase:
    def __init__(self):
        self.books = []

    def __iter__ (self):
        yield from self.books

    def add_book(self, book):
        self.books.append(Book)

book = Book('John Green', 'Paper Town')

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

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

        def __iter__ (self):
            yield from self.libros

        def add_book(self, libro):
            self.libros.append(Libro)

libro = Libro('John Green', 'Paper Town')
bookcase.py
from libro import Libro


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

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

1 Respuesta

Steven Parker
Steven Parker
244 163 puntos

El código de "Bookcase" debe existir solo dentro de bookcase.py, no lo dupliques en book.py.

Tampoco debe haber espacio entre "__iter__" y el paréntesis