Какие методы нужно реализовать, чтобы класс мог быть ключом словаря в Python

Python Senior Билайн
Какие методы нужно реализовать, чтобы класс мог быть ключом словаря в Python
Ответы
Для использования класса в качестве ключа словаря необходимо реализовать два специальных метода: - `__hash__()` - должен возвращать целочисленное значение, которое будет использоваться для хеширования объекта. Хеш должен оставаться постоянным на протяжении жизни объекта. - `__eq__()` - метод сравнения на равенство с другим объектом. Должен возвращать True, если объекты считаются равными. Пример: ``` class Point: def __init__(self, x, y): self.x = x self.y = y def __hash__(self): return hash((self.x, self.y)) def __eq__(self, other): if not isinstance(other, Point): return False return self.x == other.x and self.y == other.y # Использование в качестве ключа d = {} p1 = Point(1, 2) d[p1] = "value" ``` Важно: если `__eq__` изменяется, `__hash__` должен быть согласованным (равные объекты должны иметь одинаковый хеш). Изменяемые объекты обычно не должны быть хешируемыми.