day 23 1 前日回顧 解構方法( del

2022-07-01 18:57:13 字數 1478 閱讀 1475

高階

雙下方法:

內建函式/特殊語法/語法糖/內建的模組

__len__ 內建函式len

__call__ 特殊語法 物件()

__new__ 特殊語法,構造方法,在例項化的時候__init__之前呼叫

__init__ 特殊語法,初始化方法,在例項化的時候__new__之後呼叫

__repr__ __str__

__repr__ repr %r

__str__ str %s print

如果沒有str,所有原本要呼叫__str__方法的語法,都會呼叫__repr__

反過來如果沒有repr,會使用父類的repr,str不能替代

在繼承中: 如果子類沒有str,會先找父類的str,再找子類的repr - 擴充套件

析構方法

在清除乙個物件在記憶體中的使用的時候會觸發這個物件所在的類中的析構方法

構造方法 *****》 申請乙個空間

析構方法 *****》 釋放乙個空間之前執行

某物件借用了作業系統的資源,還要通過析構方法歸還回去 : 檔案資源  網路資源

其實python是有垃圾**機制的,當程式結束時,會自動釋放我們的記憶體

所以程式退出去之前會呼叫__del__方法 

#

垃圾**機制

class

a:

def__del__

(self):

#析構方法 del a的物件 會自動觸發這個方法

print('

執行我了')

a =a()

del a #

物件的刪除 del

print(a) # 執行我了 報錯

在開啟檔案的時候,我們總是會忘記close() ,這時候就可以利用del 來幫忙做

class

file():

#處理檔案的

def__init__

(self, file_path):

self.f =open(file_path)

self.name = '

alex

'def

read(self):

self.f.read(1024)

def__del__(self): #

是去歸還/釋放一些在建立物件的時候借用的一些資源

#del 物件的時候 程式設計師觸發

#python直譯器的垃圾**機制 **這個物件所佔得記憶體的時候 python自動觸發的

self.f.close()

f = file('

檔名'

)f.read()

#不管是主動還是被動,這個f物件總會被清理掉,被清理掉就觸發__del__方法,觸發這個方法就會歸還作業系統的檔案資源

Python課程回顧(day08)

什麼是檔案 檔案是作業系統提供給使用者 應用程式的一種虛擬單位,這種單位可以直接對映硬碟空間 為什麼要使用檔案 由於使用者無法直接操作硬體,所以使用者或應用程式直接操作檔案 讀 寫 就會被作業系統轉換成具體的硬碟操作,從而實現使用者或應用程式將資料永久的儲存在硬碟中 如何使用檔案 檔案處理的三個步驟...

Python課程回顧(day03)

1.id 變數值唯一的編號,編號指向的則是記憶體位址,所以記憶體位址不同id自然就不同 檢視id name kk print id name 2.type 型別 檢視值的型別 name kk print type name 一次性可以檢視多個id編號 3.value 值 用於字典後,可以是任意資料型...

Day52 反射回顧

反射操作構造器 1 class clazz class.forname com.reflex.bean.user 2 constructor c1 clazz.getconstructor 3 object obj1 c1.newinstance 4 system.out.println obj1 ...