Sobes.tech
Junior — Middle

Ի՞նչ քայլեր պետք է ձեռնարկվեն, որպեսզի սեփական դասի օրինակն օգտագործվի Python-ի բառարանում որպես բանալի:

sobes.tech AI

Պատասխան AI-ից

Որպեսզի սեփական դասի օրինակ կարողանա օգտագործվել որպես բանալի Python բառարանում, այն պետք է լինի հեշելի և համեմատելի: Դրա համար անհրաժեշտ է իրականացնել __hash__() և __eq__() մեթոդները դասում: __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

# Օգտագործում
my_dict = {}
key1 = MyKey(1)
key2 = MyKey(1)
my_dict[key1] = 'արժեք'
print(my_dict[key2])  # Տպում է 'արժեք', քանի որ key1 == key2

Կարևոր է, որ օբյեկտները լինեն անփոփոխ այն հատկանիշների նկատմամբ, որոնք օգտագործվում են հեշավորման ժամանակ, հակառակ դեպքում բառարանը կարող է գործել սխալ։