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

Как кастомный объект использовать в качестве ключа в словаре

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

Пример:

python
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
text
def __hash__(self):
    return hash((self.name, self.age))

def __eq__(self, other):
    if not isinstance(other, Person):
        return False
    return self.name == other.name and self.age == other.age

person1 = Person("Alice", 30)
person2 = Person("Bob", 25)
d = {person1: "Engineer", person2: "Designer"}

text

Ключевые моменты:
1. `__hash__` должен возвращать одинаковое значение для объектов, которые считаются равными
2. `__eq__` определяет логику сравнения объектов
3. Хеш объекта не должен изменяться в течение его жизни
4. Для иммутабельных атрибутов обычно используют кортеж в `__hash__`
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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