【python隨筆】之【運算子過載】

AA8j發表於2020-10-14
class Bob:
    def __init__(self, x):
        self.x = x

    def eat(self):
        print('Bob吃了%d碗飯' % self.x)

    # 過載,對兩種情況進行過載
    def __add__(self, other):
        # 如果另一個物件為此類,則返回一個此類的的匿名物件
        return Bob(self.x + other.x)


# Bob昨天吃了10碗飯,今天吃了8碗飯
Bob_yesterday = Bob(10)
Bob_today = Bob(8)
Bob_yesterday.eat()
Bob_today.eat()
print()
# 把昨天和今天吃的飯數量的加起來建立一個例項
# 在類中要對+進行過載(對+進行解釋),否則編譯器不理解,會報錯
Bob_total = Bob_today + Bob_yesterday
Bob_total.eat()
Bob吃了10碗飯
Bob吃了8碗飯

Bob吃了18碗飯

相關文章