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

Хешируем ли неизменяемый объект в Python

Да, неизменяемые объекты в Python хешируются. Хеш-значение вычисляется на основе содержимого объекта, и поскольку неизменяемые объекты не могут измениться после создания, их хеш остаётся постоянным. Это делает их пригодными для использования в качестве ключей словарей или элементов множеств.

Пример с кодом:

python
# Неизменяемые объекты (хешируются)
tuple_example = (1, 2, 3)
print(hash(tuple_example))  # Работает

# Изменяемые объекты (не хешируются)
list_example = [1, 2, 3]
print(hash(list_example))   # TypeError: unhashable type: 'list'

Важно: пользовательские классы по умолчанию хешируются (по id), но если переопределить __eq__, нужно также переопределить __hash__ для сохранения консистентности.

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

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

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

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