建構函式也被成為構造器, 當建立物件的時候會被自動呼叫,
執行方法但是沒有返回值, 如:
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...