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
Benjamin Cha
4,095 PuntosNameError: name "Book" is not defined
class Book: init(self, author, title):
def __str__(self):
return f"{self.author}, {self.title}"
personal = Book("John Green", "Paper Towns")
def __eq__(self, other):
if isinstance(other, Book):
return self.author == other.author and self.title == other.title
return False
El error ErrorDeNombre: el nombre "Book" no está definido sigue persistiendo en mi código. Estoy atrapado en el 2º desafío de 3. ¿Puede alguien darme una respuesta lo antes posible?
Ben
class Libro:
def __init__(self, autor, title):
self.autor = autor
self.title = title
def __str__(self):
return f{self.author}, {self.title}
personal = Libro(John Green, Paper Towns)
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
Rohald van Merode
JavaScript Full Stack Estudiante de Techdegree 9.277 PuntosHola Benjamin Cha 👋
Cuando el __eq__ método intenta ejecutarse isinstance(other, Book), está intentando hacer referencia a la Book clase, pero como aún está en medio de definir la clase, Book aún no está completamente definido, causando este ErrorDeNombre.
Para solucionar esto, puede eliminar la isinstance llamada y simplemente devolver el condicional:
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
Benjamin Cha
4,095 PuntosBenjamin Cha
4,095 Puntos¡Gracias por ayudarme! ¡Superé el desafío! :)