Как сделать пользовательский класс пригодным для использования в качестве ключа словаря?

Класс должен соблюдать контракт хеширования: равные объекты имеют одинаковый хеш, а хеш не меняется, пока объект служит ключом.

Короткий ответ

Что ответить на собеседовании

Класс должен соблюдать контракт хеширования: равные объекты имеют одинаковый хеш, а хеш не меняется, пока объект служит ключом.

Подробный разбор

Ответ с пояснениями

Класс должен соблюдать контракт хеширования: равные объекты имеют одинаковый хеш, а хеш не меняется, пока объект служит ключом.

Согласованно определите __eq__ и __hash__, используя стабильные поля; вычисление хеша по изменяемому содержимому ломает поиск в словаре.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку