操作符重载是一种高级技术,我们可以用它来使类具有可比性,并使它们与 Python 操作符一起工作。
让我们来看看一个狗类。
class Dog:
# the Dog class
def __init__(self, name, age):
self.name = name
self.age = age
让我们创建2个狗对象。
roger = Dog('Roger', 8)
syd = Dog('Syd', 7)
我们可以使用运算符重载来添加一种方法来比较这两个对象,基于age 属性。
class Dog:
# the Dog class
def __init__(self, name, age):
self.name = name
self.age = age
def __gt__(self, other):
return True if self.age > other.age else False
现在,如果你尝试运行print(roger > syd) ,你会得到结果True 。
用我们定义__gt__() (意味着大于)的同样方法,我们可以定义以下方法。
__eq__()来检查是否相等__lt__()检查一个对象是否应该被认为比另一个对象低,使用 操作符<__le__()对于较低或相等 ( )<=__ge__()大于或等于 ( )>=__ne__()不等于 ( )!=
然后,你有方法与算术运算相互配合。
__add__()响应 操作符+__sub__()响应 操作符–__mul__()响应 操作符*__truediv__()响应 操作符/__floordiv__()响应 操作符//__mod__()响应 操作员%__pow__()响应 操作员**__rshift__()响应 操作员>>__lshift__()响应 操作员<<__and__()响应 操作员&__or__()响应 操作员|__xor__()响应 操作符^
还有一些方法可以与其他运算符一起工作,但你已经知道了。