J'ai une liste d'objets que je veux transformer en ensemble. Mes objets contiennent quelques champs dont certains sont o.id
et o.area
. Je veux que deux objets soient égaux si ces deux champs sont identiques. c'est-à-dire: o1==o2
si et seulement si o1.area==o2.area and o1.id==o2.id
.Python: comment fonctionnent les ensembles
J'ai essayé d'écraser __eq__
et __cmp__
mais j'obtiens l'erreur: TypeError: unhashable instance
.
Que devrais-je remplacer?
http://docs.python.org/library/stdtypes.html#set-types-set-frozenset et http://docs.python.org/glossary.html#term-hashable –