Как работает hash если использовать свой класс как ключ в словаре

Python Senior Okko
Как работает hash если использовать свой класс как ключ в словаре
Ответы
Для использования собственного класса в качестве ключа словаря, он должен быть хешируемым. Для этого нужно: - Реализовать метод `__hash__()`, который возвращает целое число. - Реализовать метод `__eq__()`, чтобы сравнивать объекты на равенство. **Пример:** ``` 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) person = Person("Alice", 30) d = {person: "Developer"} print(d[Person("Alice", 30)]) # "Developer" ``` **Важно:** - Хеш должен быть неизменяемым (не изменяйте поля, участвующие в хешировании). - Если `a == b`, то `hash(a) == hash(b)`. - Не рекомендуется использовать изменяемые объекты (например, списки) в хеше.