Простой код:Что функция использует, чтобы проверить, отличаются ли два объекта?
>>> set([2,2,1,2,2,2,3,3,5,1])
set([1, 2, 3, 5])
Ok, в результате множества нет дубликатов. Что делать, если объект в списке не является int, но некоторые из них определены мной? Какой метод он проверяет, чтобы понять, отличаются ли они? Я реализовал __eq__ и __cmp__ с некоторыми объектами, но набор, похоже, их не использует: \
Кто-нибудь знает, как это решить?
«тогда и только тогда, когда» не имеет смысла, хотя. Хеш может использоваться для предварительного выбора равных элементов, но, конечно же, должно происходить прямое сравнение фактических значений, или результаты выборочных сравнений были бы довольно случайными. – 2008-12-08 23:11:31