Back to questions
Junior — Middle
56
Каким образом можно использовать экземпляр собственного класса в качестве ключа в словаре Python?
Answer from AI
sobes.tech AI
Чтобы использовать экземпляр собственного класса в качестве ключа в словаре Python, нужно обеспечить, чтобы этот объект был хешируемым. Для этого в классе нужно определить методы __hash__ и __eq__.
Пример:
class MyKey:
def __init__(self, id):
self.id = id
def __hash__(self):
return hash(self.id)
def __eq__(self, other):
return isinstance(other, MyKey) and self.id == other.id
# Использование
key1 = MyKey(1)
key2 = MyKey(2)
my_dict = {key1: 'value1', key2: 'value2'}
print(my_dict[key1]) # вывод: value1
Без этих методов объекты по умолчанию не будут корректно работать как ключи, так как их хеш и сравнение по умолчанию основаны на идентичности объекта.