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 __eq__

No está imprimiendo si es igual o no igual. ¡Solo me da un mensaje de error!

Intenté:

class Zapatos():
  def __init__(self, marca, color, tamaño=2):
    self.marca = marca
    self.color = color
    self.tamaño = tamaño

  def __eq__(self, otro):
    return self.otro == otro.color y self.marca == otro.marca

my_shoe = Zapatos(Nike, blue)
my_shoe2 = Zapatos(Nike, verde neón)

if my_shoe == my_shoe2:
  print(eq)
else:
  print(no eq)

pero solo da:

Traceback (most recent call last):
File "/home/treehouse/workspace/shoes.py", line 13, in <module>
if my_shoe == my_shoe2:
File "/home/treehouse/workspace/shoes.py", line 8, in eq
return self.other == other.color and self.brand == other.brand #and self. == other.color
AttributeError: 'Shoes' object has no attribute 'other'

2 Respuestas

Steven Parker
Steven Parker
244 163 puntos

En la línea 8 tienes "self.other", pero probablemente quisiste escribir "self.color" en su lugar.

¡Gracias! No lo vi.