Python運算符重載筆記

python運算符重載筆記

運算符重載:重寫Python內置魔法方法來實現。
魔法方法:都是以雙下劃線開頭和結尾的,類似於__X__的形式。
python通過這種特殊的命名方式來攔截操作符,以實現重載。當Python的內置操作運用於類對象時,Python會去搜索並調用對象中指定的方法完成操作。
Python在調用操作符時會自動調用這樣的方法,eg:如果類實現了__add__方法,當類的對象出現在+運算符中時會調用這個方法。

參考源碼

class OperatorOverloading:
    _size = 999
    # def __init__(self):  # 定義_size值的兩種方法
    #     self._size = 999

    def __len__(self):
        """
        len()
        :return:
        """
        return self._size

    def set_size(self, size):
        self._size = size


if __name__ == '__main__':
    gy = OperatorOverloading()
    gy._size = 123  # gaib
    gy.set_size(456)
    print(len(gy))

  1. __len__爲系統定義好的的方法名,使用len方法時,本質上就是調用了對象的__len__方法。
  2. __len__方法的參數、返回值類型、方法名是確定的,函數體可以自己定義。

例如:構造函數和析構函數:init__和__del。它們的主要作用是進行對象的創建和回收,當實例創建時,就會調用__init__構造方法。當實例對象被收回時,析構函數__del__會自動執行。

其他運算符重載函數參見此鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章