class test(object):def __init__(self, name):
self.name = name
print('這是建構函式')
def say_hi(self):
print('hell, %s' % self.name)
def __del__(self):
print('這是析構函式')
obj = test('bigberg')
obj.say_hi()
del obj
#輸出 這是建構函式
hello bigberg
這是析構函式
用於初始化類的內容部狀態,python提供的建構函式式 __init__(),也就是當該類被例項化的時候就會執行該函式,__init__()方法是可選的,如果不提供,python 會給出缺省的__init__方法。
「__del__」就是乙個析構函式了,當使用del 刪除物件時,會呼叫他本身的析構函式,另外當物件在某個作用域中呼叫完畢,在跳出其作用域的同時析構函式也會被呼叫一次,這樣可以用來釋放記憶體空間。
__del__()也是可選的,如果不提供,則python 會在後台提供預設析構函式
如果要顯式的呼叫析構函式,可以使用del關鍵字: del obj
垃圾**機制
s = '123'print('del...running')
del s
當我們用del刪除乙個物件時,其實並沒有直接清除該物件的記憶體空間。python 採用『引用計數』 的演算法方式來處理**,即:當某個物件在其作用域內不再被其他物件引用的時候,python 就自動清除物件。
而析構函式 __del__()在引用的時候就會自動清除被刪除物件的記憶體空間。
Python之析構函式
析構函式 與建構函式 建立物件的時候第乙個被自動呼叫的函式 init 相反,當物件被銷毀的時候自動呼叫的函式 del 被稱為析構函式 物件銷毀 程式執行完畢,使用del刪除,即物件被銷毀 使用場景 物件即將被銷毀的時候需要做一些工作,比如 關閉檔案,關閉資料庫,關閉各種資源 import time ...
C 析構函式 虛析構函式
1.為什麼要定義虛析構函式?如果有乙個帶有虛函式功能的類,則它需要乙個虛析構函式,原因如下 1 如果乙個類有虛函式功能,它經常作為乙個基類使用 2 如果它是乙個基類,它的派生類經常使用new來分配 3 如果乙個派生類物件使用new來分配,並且通過乙個指向它的基類的指標來控制,那麼它經常通過乙個指向它...
建構函式 析構函式 虛析構函式
說析構函式之前,先說下建構函式。建構函式用來完成對物件的一系列初始化操作,主要作用有 1.給建立的物件建立乙個識別符號 2.為物件資料成員開闢記憶體空間 3.完成物件資料成員的初始化 當並未顯示的定義建構函式時,會生成乙個預設的建構函式,預設建構函式不能完成物件資料成員的初始化,只能給物件建立一識別...