操作符重載是一種高級技巧,我們可以使用它來使類可比較,並使它們能夠使用Python的操作符。
讓我們來看一個Dog類:
class Dog:
# Dog類
def __init__(self, name, age):
self.name = name
self.age = age
讓我們創建2個Dog對象:
roger = Dog('Roger', 8)
syd = Dog('Syd', 7)
我們可以使用操作符重載來添加一種比較這兩個對象的方式,基於age
屬性:
class Dog:
# Dog類
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。
同樣地,我們可以定義以下方法:
__eq__()
檢查是否相等__lt__()
檢查一個對象是否比另一個對象小使用<
操作符__le__()
小於等於 (<=
)__ge__()
大於等於 (>=
)__ne__()
不相等 (!=
)
然後,您可以定義用於與算術操作進行交互的方法:
__add__()
响應+
操作符__sub__()
响應-
操作符__mul__()
响應*
操作符__truediv__()
响應/
操作符__floordiv__()
响應//
操作符__mod__()
响應%
操作符__pow__()
响應**
操作符__rshift__()
响應>>
操作符__lshift__()
响應<<
操作符__and__()
响應&
操作符__or__()
响應|
操作符__xor__()
响應^
操作符
還有一些其他用於處理其他操作符的方法,但是你已經有了基本想法。