Встречается на собеседованиях • сегодня
Как кастомный объект использовать в качестве ключа в словаре
Для использования кастомного объекта в качестве ключа словаря в 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.ageperson1 = Person("Alice", 30)
person2 = Person("Bob", 25)
d = {person1: "Engineer", person2: "Designer"}
text
Ключевые моменты:
1. `__hash__` должен возвращать одинаковое значение для объектов, которые считаются равными
2. `__eq__` определяет логику сравнения объектов
3. Хеш объекта не должен изменяться в течение его жизни
4. Для иммутабельных атрибутов обычно используют кортеж в `__hash__`
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы