一、背景
在编程中我们通常需要比对两个对象、或者两个对象的某一属性是否相等, 此时会用到下面魔法方法。
会根据比较运算符调用相应的魔法方法进行比较
__eq__
__ne__
__lt__
__le__
__gt__
__ge__
二、简单实例
我们要比对两个学生的年龄是否相等、或大、或小,符合比较规则True、不符合False
class Student:
def __init__(self, username, age, height):
self.username = username
self.age = age
self.height = height
def __eq__(self, other):
print('比较规则 相等 True')
return self.age == other.age
def __ne__(self, other):
print('比较规则 不相等')
return self.age != other.age
def __lt__(self, other):
print('比较规则 小于')
return self.age <= other.age
def __le__(self, other):
print('比较规则 小于或等于')
return self.age <= other.age
def __gt__(self, other):
print('比较规则 大于')
return self.age > other.age
def __ge__(self, other):
print('比较规则 大于等于')
return self.age > other.age
if __name__ == '__main__':
pen1 = Student("zhangsan", 18, 175)
pen2 = Student("lisi", 18, 175)
print(pen1 == pen2)
print(pen1 != pen2)
print(pen1 < pen2)
print(pen1 <= pen2)
print(pen1 > pen2)
print(pen1 >= pen2)