Sobes.tech
Junior — Middle

Python lüğətində açar kimi istifadə etmək üçün öz sinfinizin nümunəsini hansı addımlarla həyata keçirmək lazımdır?

sobes.tech Süni İntellekt

AI-dan cavab

Öz öz sinifinizin nümunəsinin Python sözlüyündə açar kimi istifadə edilə bilməsi üçün, o, hash edilə bilən və müqayisə edilə bilən olmalıdır. Bunu etmək üçün, sinifdə __hash__()__eq__() metodlarını tətbiq etmək lazımdır. __hash__ metodu obyekt üçün onun əhəmiyyətli atributlarını nəzərə alaraq unikal tam ədəd dəyərini qaytarmalıdır və __eq__ obyektlərin bərabərliyini müəyyən etməlidir.

Nümunə:

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

# İstifadə
my_dict = {}
key1 = MyKey(1)
key2 = MyKey(1)
my_dict[key1] = 'dəyər'
print(my_dict[key2])  # 'dəyər' göstərəcək, çünki key1 == key2

Əhəmiyyətlidir ki, obyektlər hash edilən atributlar baxımından dəyişməz olsun, əks halda sözlük düzgün işləməyə bilər.