Встречается на собеседованиях • сегодня
Зачем нужен метод __hash__
Метод __hash__ определяет хеш-значение объекта, которое используется при работе с хеш-таблицами (например, словарями и множествами). Он должен возвращать целое число, которое остаётся неизменным на протяжении всего времени жизни объекта.
Основные правила:
- Если объекты равны (
a == b), их хеши должны быть одинаковыми (hash(a) == hash(b)). - Объекты с разными хешами гарантированно считаются неравными.
- Хеш должен быть "стабильным" — не меняться, если не меняется состояние объекта.
Пример:
python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return self.x == other.x and self.y == other.y
def __hash__(self):
return hash((self.x, self.y)) # Используем кортеж для хеширования
p1 = Point(1, 2)
p2 = Point(1, 2)
print(hash(p1) == hash(p2)) # TrueЕсли __hash__ не определён, объект нельзя использовать как ключ словаря или элемент множества.

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