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))
- __len__爲系統定義好的的方法名,使用len方法時,本質上就是調用了對象的__len__方法。
- __len__方法的參數、返回值類型、方法名是確定的,函數體可以自己定義。
例如:構造函數和析構函數:init__和__del。它們的主要作用是進行對象的創建和回收,當實例創建時,就會調用__init__構造方法。當實例對象被收回時,析構函數__del__會自動執行。