Sobes.tech
Junior — Middle
84

Объектіні сөздік немесе хэш кестесінде кілт ретінде пайдалану үшін қандай қадамдар қажет?

AI-дан жауап

sobes.tech AI

Python-да, объектті сөздікке (dict) немесе хэш-таблицаға кілт ретінде пайдалану үшін, ол хэштелетін болуы керек. Ол үшін:

  1. Объектінің класы __hash__() әдісін жүзеге асыруы керек, ол бүтін санды хэш мәнін қайтарады.
  2. Объектінің класы __eq__() әдісін жүзеге асыруы керек, ол объектілерді теңестіру үшін.

Егер бұл әдістер дұрыс анықталса және объектілер өзгермейтін болса, олар кілт ретінде қолданылуы мүмкін.

Мысал:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __eq__(self, other):
        return isinstance(other, Point) and self.x == other.x and self.y == other.y

    def __hash__(self):
        return hash((self.x, self.y))

points_dict = {}
points_dict[Point(1, 2)] = "A"
points_dict[Point(3, 4)] = "B"

print(points_dict[Point(1, 2)])  # "A" шығарады

Осылайша, __hash__ және __eq__ дұрыс жүзеге асырылған объектілер сөздікте кілт ретінде қолданылуы мүмкін.