Junior — Middle
84
Объектіні сөздік немесе хэш кестесінде кілт ретінде пайдалану үшін қандай қадамдар қажет?
AI-дан жауап
sobes.tech AI
Python-да, объектті сөздікке (dict) немесе хэш-таблицаға кілт ретінде пайдалану үшін, ол хэштелетін болуы керек. Ол үшін:
- Объектінің класы
__hash__()әдісін жүзеге асыруы керек, ол бүтін санды хэш мәнін қайтарады. - Объектінің класы
__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__ дұрыс жүзеге асырылған объектілер сөздікте кілт ретінде қолданылуы мүмкін.