Встречается на собеседованиях • сегодня
Как сделать класс хешируемым
Чтобы сделать класс хешируемым в Python, нужно:
- Определить метод
__hash__() - Сделать класс неизменяемым (или гарантировать, что хеш не изменится)
- Обычно переопределяют
__eq__()для сравнения объектов
Пример:
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))Ключевые моменты:
- Хеш должен быть одинаковым для равных объектов (
__eq__и__hash__согласованы) - Лучше использовать кортеж из неизменяемых атрибутов для хеширования
- Если класс изменяемый,
__hash__должен возвращатьNone

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