Класс должен соблюдать контракт хеширования: равные объекты имеют одинаковый хеш, а хеш не меняется, пока объект служит ключом.
Как сделать пользовательский класс пригодным для использования в качестве ключа словаря?
Класс должен соблюдать контракт хеширования: равные объекты имеют одинаковый хеш, а хеш не меняется, пока объект служит ключом.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Класс должен соблюдать контракт хеширования: равные объекты имеют одинаковый хеш, а хеш не меняется, пока объект служит ключом.
Согласованно определите __eq__ и __hash__, используя стабильные поля; вычисление хеша по изменяемому содержимому ломает поиск в словаре.