Встречается на собеседованиях • сегодня
Что нужно сделать, чтобы использовать экземпляры собственного класса в качестве ключей в словаре
Для использования экземпляров класса в качестве ключей словаря необходимо:
- Реализовать метод
__hash__(), который должен возвращать целочисленное значение. Хэш должен быть неизменяемым на протяжении жизни объекта. - Реализовать метод
__eq__(), определяющий логику сравнения объектов.
Пример:
python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __hash__(self):
return hash((self.name, self.age))
def __eq__(self, other):
return (self.name, self.age) == (other.name, other.age)
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)
d = {person1: "Alice's data", person2: "Bob's data"}Важно: если объект изменяемый (например, содержит изменяемые атрибуты), его хэш не должен меняться, иначе это нарушит работу словаря.

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