操作符
在自动类的时候,如果我们想实现实例的比较应该怎么做呢?其实python给我们提供了相应的魔术方法,比如在自定义类中定义 __eq__
方法就可以利用==
判断两个实例是否相等
if instanceA == instanceB:
# do something
而不是利用equals()
方法来判断,因为使用它比较繁琐和冗余,下面我们介绍一下python中的比较操作符
1 、__cmp__(self, other)
利用__cmp__
可以定义所有比较操作符的行为(<,==,!=,等等),__cmp__
应该在 self < other 时返回一个负整数,在 self == other 时返回0,在 self > other 时返回正整数。虽然__cmp__
可以定义所有比较操作符的行为,但是可以根据自己的需求定义比较行为,不需要全部定义,例子如下
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __cmp__(self, other):
if self.age < other.age:
return -1
elif self.age == other.age:
return 0
else:
return 1
person1 = Person("A"