Junior — Middle
Ce pași trebuie urmați pentru ca o instanță a unei clase proprii să poată fi utilizată ca cheie într-un dicționar Python?
sobes.tech AI
Răspuns de la AI
Pentru ca o instanță a unei clase proprii să poată fi utilizată ca cheie într-un dicționar Python, trebuie să fie hashabilă și comparabilă. Pentru aceasta, trebuie implementate metodele __hash__() și __eq__() în clasă. Metoda __hash__ trebuie să returneze o valoare întreagă unică pentru obiect, ținând cont de atributele sale semnificative, iar __eq__ trebuie să definească egalitatea între obiecte.
Exemplu:
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
# Utilizare
my_dict = {}
key1 = MyKey(1)
key2 = MyKey(1)
my_dict[key1] = 'valoare'
print(my_dict[key2]) # Va afișa 'valoare', deoarece key1 == key2
Este important ca obiectele să fie imuabile în privința atributelor utilizate în hash, altfel dicționarul poate funcționa incorect.