Встречается на собеседованиях • сегодня

Для чего нужна хешируемость объектов в 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) — нет.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы