構造器以及解構器

2022-03-14 01:22:52 字數 1195 閱讀 3218

如果說類是一種資料結構的定義,那麼例項則是宣告了這種型別的變數,換句話說,例項是有生命的類。

有一點可以說明一下,在python2.2版本之前,當你定義乙個類的時候,你並沒有建立乙個新的類,而僅僅是建立了乙個類物件。

在2.2版本之後,當你定義了乙個新式類之後,你就已經建立了乙個新的型別。

1.__init__()」構造器「方法

在python中,沒有例項,方法是不能被呼叫的。

當類被呼叫,例項化的第一步是建立類物件。一旦物件建立了,python檢查是否實現了__init__()方法。

預設情況下,如果沒有定義(或覆蓋)特殊方法__init__(),對例項不會新增任何特別的操作。

任何所需的特定操作都需要實現__init__()方法,如果類沒有實現則返回它的物件,例項化過程完畢。

如果__init__()已經被實現,那麼它將被呼叫,例項物件作為第乙個引數(self)被傳進去,像標準方法一樣被呼叫。

呼叫類時,傳進的任何引數都交給了__init__().

2.__del__()"結構器"方法

python沒有提供任何內部機制來跟蹤乙個類有多少個例項被建立了,或者記錄這些例項是些什麼東西。

最好的方式是使用乙個靜態成員來記錄例項的個數,靠儲存它們的引用來跟蹤例項物件是很危險的。

class

instct(object):

count = 0 #

乙個類的屬性

def__init__(self): #

增加count

instct.count += 1

def__del__(self): #

減少count

instct.count -= 1

def howmany(self): #

返回count

return

instct.count

a =instct()

b =instct()

print

(a.howmany())

print

(b.howmany())

print

(a.howmany())

print

(b.howmany())

dela

delb

print

(instct.count)

#執行結果22

220

例項構造器與型別構造器

例項構造器即例項建構函式,型別構造器也就是靜態建構函式.1 在例項構造器裡面,我們可以初始化類的例項欄位和靜態欄位.class test 2 在型別構造器裡面我們只能初始化靜態字段,其目的也在於此.class test 3 例項構造器和型別構造器觸發的條件不一樣.例項構造器是在乙個類的例項構造的時候...

構造器概述和預設構造器

在建立某個物件的時候,如下 student s1 new student 這個 特別像在呼叫乙個方法名稱為student的無引數方法 我們將這種特殊的方法稱之為構造方法,構造器 constructor 但在student類中,又找不到該構造方法卻又不報錯 編譯器在編譯原始檔的時候,會建立乙個預設的構...

構造器 二 指定構造器 便利構造器

在swift中類一共有兩種構造器 我個人的理解為在類中沒有加任何關鍵字的構造器稱為指定構造器,作用為初始化類中所有的例項儲存屬性 init 我個人理解為在類中 只能在類中,結構體和列舉裡面是沒有的 加上convenience關鍵字的構造器為便利構造器,作用為輔助性呼叫指定構造器進行一系列的工作。感覺...