У меня есть список объектов, которые я хочу превратить в набор. Мои объекты содержат несколько полей, некоторые из которых являются o.id
и o.area
. Я хочу, чтобы два объекта были равны, если эти два поля одинаковы. т.е.: o1==o2
если и только если o1.area==o2.area and o1.id==o2.id
.Python: Как работает набор
Я пробовал переписывать __eq__
и __cmp__
, но я получаю ошибку: TypeError: unhashable instance
.
Что я должен переписать?
http://docs.python.org/library/stdtypes.html#set-types-set-frozenset и http://docs.python.org/glossary.html#term-hashable –