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
DV Shop
1.482 puntosHe intentado muchas veces en este examen. Pero no es correcto. Por favor, ayúdame.
NameError: name 'Book' is not defined.
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):
if isinstance(otro, Libro):
return self.autor == otro.autor y self.title == otro.title
return False
from libro import Libro
class BookCase:
def __init__(self):
self.libros =
def add_books(self, libro):
self.libros.append(libro)
1 Respuesta
Jeff Muday
28,732 PuntosLa tercera parte del desafío prueba que comprendiste el yield from palabras clave y cómo se relacionan con el class object __iter__ método.
Es bastante simple. Una vez que agregues este método a tu objeto, puedes pasar el desafío.
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
Los __iter__ es bastante útil... puedes usarlo para gestionar el bucle a través de tu colección. El desafío NO pide esto. Pero puedes usar este código así.
book1 = Libro('J.D. Salinger', 'The Catcher in the Rye')
book2 = Libro('Ayn Rand', 'Atlas Shrugged')
book3 = Libro('George Orwell', 'Animal Farm')
mybookcase = BookCase()
mybookcase.add_books(book1)
mybookcase.add_book(book2)
mybookcase.add_book(book3)
para libro en mybookcase:
print(libro)
Aquí está la salida:
jeff@pop-os:~/projects/challeges$ python book.py
J.D. Salinger, The Catcher in the Rye
Ayn Rand, Atlas Shrugged
George Orwell, Animal Farm