python3之建構函式和析構函式的學習

2021-10-05 19:00:12 字數 645 閱讀 3779

建構函式也被成為構造器, 當建立物件的時候會被自動呼叫,

執行方法但是沒有返回值, 如:

classa:

# 這就是建構函式

def__init__

(self)

: self.name =

'gz'

print

(f'我是'

)a = a(

)# 則會輸出: '我是gz'

只有當該物件的引用計數為0時才會呼叫析構函式,**資源

import sys

classb:

def__del__

(self)

:print

('hello'

)b = b(

)print

('###'

)# 若在之後列印, 則說明在後面執行的

# del b # 若注釋掉這句, 則表示程式執行中,b引用計數為1,不會釋放資源

print

(sys.getrefcount(b)

)# 當刪除b後,會報錯變數未定義,當注釋'del b'後, 會列印引用計數的值為 2, 因為當前這行還要算上一次

while1:

pass

C 之建構函式和析構函式

我們已經知道了物件就是類的例項,二者的關係就相當於資料型別與它的變數的關係。每個物件區別於其他物件的地方就是依靠它的自身屬性,即資料成員的值。c 中,物件在定義的時候進行的資料成員的設定,稱為物件的初始化。同樣,在特定物件使用結束時,還要對資料成員進行一些清理工作。c 中對類的初始化和清理的工作,分...

C 之建構函式和析構函式

一 建構函式 1 物件的初始化和建構函式 類是一種抽象的資料型別,它不占用儲存空間,不能容納具體的資料。因此在類宣告中不能給資料成員賦初值。例如 錯誤 class complex 與使用變數一樣,使用物件時也應該先定義,後使用。在定義物件時,對資料成員賦初值,稱為初始化。例如 class compl...

建構函式和析構函式

建構函式沒有返回值,不能被顯示的呼叫。它是在定義物件時由系統自動執行的,而且只執行一次。如果沒有定義建構函式,系統會自動生成乙個建構函式,只是這個建構函式的函式體是空,沒有引數,也不執行任何初始化的操作。帶引數的建構函式 有一種簡練,方便的寫法 建構函式的引數初始化表 box int h,int w...