Встречается на 1% собеседований по Python
Как работает hash если использовать свой класс как ключ в словаре
Для использования собственного класса в качестве ключа словаря, он должен быть хешируемым. Для этого нужно:
- Реализовать метод
__hash__(), который возвращает целое число. - Реализовать метод
__eq__(), чтобы сравнивать объекты на равенство.
Пример:
python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __hash__(self):
return hash((self.name, self.age))
def __eq__(self, other):
return (self.name, self.age) == (other.name, other.age)
person = Person("Alice", 30)
d = {person: "Developer"}
print(d[Person("Alice", 30)]) # "Developer"Важно:
- Хеш должен быть неизменяемым (не изменяйте поля, участвующие в хешировании).
- Если
a == b, тоhash(a) == hash(b). - Не рекомендуется использовать изменяемые объекты (например, списки) в хеше.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы