Встречается на собеседованиях • сегодня
Как сделать хешируемый класс в Python
Чтобы сделать класс хешируемым в Python, он должен удовлетворять двум условиям:
- Реализовать метод
__hash__() - Реализовать метод
__eq__()для сравнения объектов
Класс должен быть неизменяемым (immutable), иначе его хеш может измениться, что приведёт к проблемам при использовании в словарях или множествах.
Пример:
python
class Point:
def __init__(self, x, y):
self._x = x
self._y = y
@property
def x(self):
return self._x
@property
def y(self):
return self._y
def __eq__(self, other):
return isinstance(other, Point) and self.x == other.x and self.y == other.y
def __hash__(self):
return hash((self.x, self.y))Ключевые моменты:
- Используем
@propertyдля защиты атрибутов от изменений - Хеш вычисляется на основе кортежа с неизменяемыми полями
__eq__обязателен для корректной работы хеширования

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