Ver Mensaje Individual
  #9 (permalink)  
Antiguo 13/03/2014, 23:26
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Objeto miembro de una lista.

Efectivamente evaluaría falso el código que pusiste. Y es que por default checa con el operador is.

Código Python:
Ver original
  1. class Foo(object):
  2.     def __init__(self):
  3.         self.data=0
  4.     def __eq__(self, other):
  5.         if self is other:
  6.             return True
  7.         else:
  8.             return self.data == data
  9.  
  10. objA = Foo()
  11. objA.data = 1
  12.  
  13. objB = Foo()
  14. objB.data = 1
  15.  
  16. mylist = [objA]

Puede ser que tu objeto tenga algun tipo de id, entonces solo necesitarías checar el id. Porque tal vez los otros campos son irrelevantes para determinar la igualdad. Pero eso lo defines tu.