python析構函式

2022-09-15 04:45:14 字數 913 閱讀 6679

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.完成物件資料成員的初始化 當並未顯示的定義建構函式時,會生成乙個預設的建構函式,預設建構函式不能完成物件資料成員的初始化,只能給物件建立一識別...