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
Leah Kelly
4,141 puntos¿No hay una forma más simple de retornar un valor comparado que: return self.model == other.make and other.model == self.make?
¿Simplemente puedes:
def __eq__(self):
return self.hacer == self.model
Estoy bastante confundido.
4 respuestas
Steven Parker
244 163 puntosTen cuidado de no confundir tus términos, quieres comparar la marca con la marca, y el modelo con el modelo. La marca probablemente nunca coincida con el modelo en el mismo objeto o en 2 diferentes.
Necesitas comparar ambos para asegurarte de que los elementos son iguales, y por eso hay dos comparaciones unidas con la and operación lógica. Requiere que ambas sean verdaderas para que el resultado sea verdadero.
Y necesitas comparar "self" con "other". "self" es el objeto en el que estás ejecutando la prueba, y "other" es el objeto con el que se está comparando a. Comparar dos atributos "self" no revelará nada útil.
Leah Kelly
4,141 puntos¡gracias!
Leah Kelly
4,141 puntos¿Qué tal:
def __eq__(self, otro):
return otro.hacer == otro.model
¿Devolveríamos el mismo valor?
Steven Parker
244 163 puntosEso todavía está confundiendo "marca" y "modelo"... solo usando los otros en lugar de los internos. Pero sí, tampoco es probable que coincidan. Ten en cuenta que en el video, solo se comparan los atributos similares.
Leah Kelly
4,141 puntos¡ok, gracias!