列舉面向物件中帶雙下線的特殊方法?
類的內置方法(魔法方法):
凡是在類內部定義,以__開頭__結尾的方法,都是類的內置方法,也稱之為魔法方法,
類的內置方法,會在某種條件滿足下自動觸發,
內置方法如下:
__new__: 在__init__觸發前,自動觸發, 呼叫該類時,內部會通過__new__產生一個新的物件,
__init__: 在呼叫類時自動觸發, 通過產生的物件自動呼叫__init__()
__getattr__: 在 “物件.屬性” 獲取屬性時,若 “屬性沒有” 時觸發,
__getattribute__: 在 “物件.屬性” 獲取屬性時,無論 "屬性有沒有" 都會觸發,
# 注意: 只要__getattr__ 與 __getattribute__ 同時存在類的內部,只會觸發__getattribute__,
__setattr__:當 “物件.屬性 = 屬性值” , 添加或修改屬性時觸發
__call__ : 在呼叫物件 “物件 + ()” 時觸發, 即:物件() 或者 類()()
__str__ : 在列印物件時觸發, # 注意: 該方法必須要有一個 “字串” 回傳值,
__getitem__: 在物件通過 “物件[key]” 獲取屬性時觸發,
__setitem__: 在物件通過 “物件[key]=value值” 設定屬性時觸發,
__gt__,__lt__,__eq__:自定義比較物件大小雙下:gt、lt、eq
__enter__: 進入檔案時,開打檔案時執行,回傳值:self
__exit__: 退出檔案時,報錯中斷、或者代碼執行完時執行, 回傳值:可以有回傳值,是bool型別
__del__ : 手動洗掉時立馬執行,或者程式運行結束時自動執行
使用場景:當你的物件使用程序中,打開了不屬于解釋器的資源;例如,檔案,網路埠
__slots__:原理,給物件宣告只有某些屬性,從而洗掉不必要的記憶體,不能添加新屬性
使用場景:1.優化物件記憶體 2.限制屬性數量
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/543386.html
標籤:Python
上一篇:Python裝飾器實體講解(一)
