Вопрос: может ли set содержать два одинаковых объекта? Ответ: да, запросто! Делаем класс: Как это? set запоминает хэш объекта при вставке, а потом не следит за тем, меняется ли как-то объект или нет, это было бы очень накладно. Изначально мы вставляли 20, но потом уже поменяли его на 30, тем самым сломав set. «Починить» такой…
Метка: хэширование
А вы знали про hash(-1)?
(Речь идет о реализации CPython) Встроенная функция hash возвращает целое число – хэш-сумму, которое используется при сравнении ключей словаря во время поиска, например. Для пользовательских классов hash вызывает магический метод класса __hash__ , а для примитивных типов уже есть встроенная реализация на Си. Примечательно, что для чисел hash обычно возвращает само же значение числа-аргумента, кроме…