Зачем нужен метод __hash__

Python Middle Т-Банк
Зачем нужен метод __hash__
Ответы
Метод `__hash__` определяет хеш-значение объекта, которое используется при работе с хеш-таблицами (например, словарями и множествами). Он должен возвращать целое число, которое остаётся неизменным на протяжении всего времени жизни объекта. Основные правила: - Если объекты равны (`a == b`), их хеши должны быть одинаковыми (`hash(a) == hash(b)`). - Объекты с разными хешами гарантированно считаются неравными. - Хеш должен быть "стабильным" — не меняться, если не меняется состояние объекта. Пример: ``` 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__` не определён, объект нельзя использовать как ключ словаря или элемент множества.