Python боюнча класстарды салыштыруу
Pythonдо класстарды салыштыруу үчүн
__le__
- Аз үчүн чоң салыштыруу же барабар - <=
методдору адатта жокко чыгарылат (теңчилик, теңсиздик, аз, чоң, аз үчүн салыштыруу же барабар, чоң же барабар). Бул жерде муну көрсөткөн бир мисал келтирилген:
class Point: def __init__(self, x, y): self.x = x self.y = y def __eq__(self, other): if isinstance(other, Point): return self.x == other.x and self.y == other.y return False def __ne__(self, other): return not self.__eq__(other) def __lt__(self, other): if isinstance(other, Point): return self.x < other.x and self.y < other.y return False def __gt__(self, other): return not self.__lt__(other) and not self.__eq__(other) def __le__(self, other): return self.__lt__(other) or self.__eq__(other) def __ge__(self, other): return not self.__lt__(other) # Колдонуу p1 = Point(2, 3) p2 = Point(2, 3) p3 = Point(4, 5) print(p1 == p2) # True - оператор == print(p1 != p3) # True - оператор != print(p1 < p3) # True - оператор < print(p1 > p3) # False - оператор > print(p1 <= p2) # True - оператор <= print(p1 >= p2) # True - оператор >=
Бул мисалда биз 'x' жана 'y' маанилери менен тегиздиктеги чекитти билдирген 'Point' классын түздүк.
Биз `__eq__`, `__ne__`, `__lt__`, `__gt__`, `__le__`, `__ge__` методдорун жокко чыгарып, `Point` классынын объекттеринин ортосунда салыштыруу операцияларын аткардык.
`Point` объекттерин салыштырганда биз алардын `x` жана `y` координаттарын текшеребиз.
Ошондой эле, биз салыштыруудан мурун башка операнддын объектинин түрүн текшерүү үчүн “isinstance” операторлорун колдонобуз.
Бул бир эле класстагы объекттердин ортосундагы салыштырууларды гана жүргүзүүгө жана башка маалымат түрлөрү менен салыштырганда каталарды болтурбоого мүмкүндүк берет.
Бул мисалда биз 'x' жана 'y' маанилери менен тегиздиктеги чекитти билдирген 'Point' классын түздүк. Биз `__eq__`, `__ne__`, `__lt__`, `__gt__`, `__le__`, `__ge__` методдорун жокко чыгарып, `Point` классынын объекттеринин ортосунда салыштыруу операцияларын аткардык.
Бул мисалда биз 'x' жана 'y' маанилери менен тегиздиктеги чекитти билдирген 'Point' классын түздүк. Биз `__eq__`, `__ne__`, `__lt__`, `__gt__`, `__le__`, `__ge__` методдорун жокко чыгарып, `Point` классынын объекттеринин ортосунда салыштыруу операцияларын аткардык.