Встречается на собеседованиях • сегодня
Для чего нужна хешируемость объектов в Python
Хешируемость объекта позволяет использовать его в качестве ключа в словаре или элемента множества, так как Python требует, чтобы ключи были неизменяемыми и имели стабильный хеш.
Условия хешируемости:
- Объект должен реализовывать метод
__hash__(), возвращающий целое число. - Должен быть определен
__eq__()для сравнения. - Хеш объекта не должен меняться в течение его жизни.
Пример:
python
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):
return self.x == other.x and self.y == other.y
p = Point(1, 2)
d = {p: "точка"} # Работает, так как Point хешируемыйНеизменяемые типы (int, str, tuple) хешируемы по умолчанию, изменяемые (list, dict) — нет.

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