python回顧(十一)——物件管理
物件的建立
__new__方法作用
__new__方法用於定義建立物件時執行的操作,__new__方法僅僅為使用者提供一個建立物件時干預的入口,真正執行建立物件的操作由object類中的__new__方法完成
__new__方法定義
定義__new__方法是對object類中__new__方法的重寫,重寫該方法時必須再次呼叫object類中的__new__方法
__new__方法呼叫
__new__方法在建立物件時自動執行,無需手工執行呼叫該方法
物件的刪除
del操作作用
del操作的實質是斷開變數與記憶體資料之間的引用,操作del執行後等同於對應變數未進行過定義
del操作執行範圍
1,刪除定義的變數:功能等同於變數未定義
2,刪除儲存模型中的資料:將資料按照變數的形式看待,功能等同於未定義過對應的資料
列表資料報錯:索引不存在
元組物件報錯:元組物件不支援對項的刪除
字典物件報錯:鍵錯誤,鍵不存在
物件中的屬性:對應物件等同於該物件未定義過該屬性
__del__方法作用
__del__方法用於定義物件不存在任何引用時執行的操作。當物件斷開了與最後一個變數之間的引用關係時,將執行該物件的__del__方法
__del__方法執行範圍
1.當手工執行斷開變數與物件的最後一個引用時執行,即del操作
2.當程式執行完畢時,所有變數對應的引用都斷開,此時執行,即退出程式
__del__方法呼叫
__del__方法在物件斷開與最後一個變數之間的引用關係時自動執行,無需手工執行呼叫該方法
物件判斷
物件判等概念
當兩個物件對應的引用地址相同時,稱這兩個物件是同一個物件
物件判等語法格式
物件引用地址判等:
物件名 is 物件名 或 變數名 is 變數名
資料引用地址判定:
資料 is 資料
注:判等操作的結果是True或False
3.3 ==與is的區別
==操作針對判定的內容不同,規則不同。例如數值性資料比較數值的大小,不考慮是整數還是小數。字串比較字串的內容是否相同,不考慮引用地址是否相同
is操作只針對地址進行判定,只要地址相同即返回True,否則返回False
單例模式
單例模式的作用
控制一個類只能創建出單個例項物件
單例模式書寫規範
注意事項
1.定義的類變數要進行私有化,否則可以通過類名在類的外部訪問到
2.物件的判空操作使用is進行判定