Встречается на 1% собеседований по Python
Как сделать хешируемый класс в 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
интервью вопросы и ответы