__eq__
__eq__() usuli
Ko‘pgina ma’lumotlar turlari (string, raqam, list va boshqalar) ularni solishtirish uchun ==dan foydalanganda tarkib bo‘yicha taqqoslanadi.
Obyektlar uchun bu shunday emas.== operatori ikkita o‘zgaruvchining xotiradagi aynan bir xil obyektga ishora qilishini tekshiradi - ularning mazmuni mos keladimi yoki yo‘qmi.
__eq__() usuli bu xatti-harakatni o‘zgartirishga imkon beradi.
Misol
__eq__()siz, bir xil qiymatga ega bo‘lgan ikkita obyekt hali ham teng deb hisoblanmaydi:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Linus", 30)
p2 = Person("Linus", 30)
print(p1 == p2)
O‘zingiz sinab ko‘ring »
Taqqoslash usulini o‘zgartiring
Sinfingiz uchun "teng" nimani anglatishini aniqlash uchun __eq__() qo‘shing:
Misol
Agar qiymatlar teng bo‘lsa, ikkita obyekt teng ekanligini aniqlaydigan __eq__() usulini qo‘shing:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __eq__(self, other):
return self.name == other.name and self.age == other.age
p1 = Person("Linus", 30)
p2 = Person("Linus", 30)
print(p1 == p2)
O‘zingiz sinab ko‘ring »
Eslatma:otherparametrini sezdingizmi? U taqqoslanayotganotherobyektini ifodalaydi.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
