操作符重載是一種高級技巧,我們可以使用它來使類可比較,並使它們能夠使用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__() 响應 ^ 操作符

還有一些其他用於處理其他操作符的方法,但是你已經有了基本想法。