Junior — Middle
Хештеуге болатын объект дегеніміз не екенін және ол қандай ерекшеліктерге ие болуы керек екенін түсіндіріңіз.
sobes.tech AI
AI-дан жауап
Python-да хештеуге болатын объект — бұл __hash__() әдісі анықталған және бүтін санды мәнді қайтаратын объект, яғни хеш. Мұндай объект өзгермейтін (immutable) болуы керек, оның хеші объект өмір бойы тұрақты қалуы үшін.
Хештеуге болатын объектінің ерекшеліктері:
- Өзгермейтіндік: объектінің өрістері өзгермеуі керек, әйтпесе хеш дұрыс болмай қалады.
__hash__әдісін жүзеге асыру: әдіс бүтін санды мәнді қайтаруы керек.__eq__әдісін жүзеге асыру:__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))
p = Point(1, 2)
print(hash(p))
Мұндай объектіні сөздік кілті немесе жиын элементі ретінде қолдануға болады.