Junior — Middle
Kādi soļi jāveic, lai jūsu paša klases instances varētu tikt izmantots kā atslēga Python vārdnīcā?
sobes.tech AI
Atbilde no AI
Lai jūsu pašu klases instances varētu tikt izmantotas kā atslēga Python vārdnīcā, tā jābūt hashable un salīdzināmai. Tam jāievieš metodes __hash__() un __eq__() klasē. Metode __hash__ jāatgriež unikāla vesela skaitļa vērtība, ņemot vērā tās nozīmīgās atribūtus, bet __eq__ jādefinē objektu vienādība.
Piemērs:
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
# Lietošana
my_dict = {}
key1 = MyKey(1)
key2 = MyKey(1)
my_dict[key1] = 'vērtība'
print(my_dict[key2]) # Izvadīs 'vērtība', jo key1 == key2
Svarīgi, lai objekti būtu nemainīgi attiecībā uz atribūtiem, kas tiek izmantoti hashēšanai, citādi vārdnīca var nedarboties pareizi.