如果說類是一種資料結構的定義,那麼例項則是宣告了這種型別的變數,換句話說,例項是有生命的類。
有一點可以說明一下,在python2.2版本之前,當你定義乙個類的時候,你並沒有建立乙個新的類,而僅僅是建立了乙個類物件。
在2.2版本之後,當你定義了乙個新式類之後,你就已經建立了乙個新的型別。
1.__init__()」構造器「方法
在python中,沒有例項,方法是不能被呼叫的。
當類被呼叫,例項化的第一步是建立類物件。一旦物件建立了,python檢查是否實現了__init__()方法。
預設情況下,如果沒有定義(或覆蓋)特殊方法__init__(),對例項不會新增任何特別的操作。
任何所需的特定操作都需要實現__init__()方法,如果類沒有實現則返回它的物件,例項化過程完畢。
如果__init__()已經被實現,那麼它將被呼叫,例項物件作為第乙個引數(self)被傳進去,像標準方法一樣被呼叫。
呼叫類時,傳進的任何引數都交給了__init__().
2.__del__()"結構器"方法
python沒有提供任何內部機制來跟蹤乙個類有多少個例項被建立了,或者記錄這些例項是些什麼東西。
最好的方式是使用乙個靜態成員來記錄例項的個數,靠儲存它們的引用來跟蹤例項物件是很危險的。
classinstct(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()
(a.howmany())
(b.howmany())
(a.howmany())
(b.howmany())
dela
delb
(instct.count)
#執行結果22
220
例項構造器與型別構造器
例項構造器即例項建構函式,型別構造器也就是靜態建構函式.1 在例項構造器裡面,我們可以初始化類的例項欄位和靜態欄位.class test 2 在型別構造器裡面我們只能初始化靜態字段,其目的也在於此.class test 3 例項構造器和型別構造器觸發的條件不一樣.例項構造器是在乙個類的例項構造的時候...
構造器概述和預設構造器
在建立某個物件的時候,如下 student s1 new student 這個 特別像在呼叫乙個方法名稱為student的無引數方法 我們將這種特殊的方法稱之為構造方法,構造器 constructor 但在student類中,又找不到該構造方法卻又不報錯 編譯器在編譯原始檔的時候,會建立乙個預設的構...
構造器 二 指定構造器 便利構造器
在swift中類一共有兩種構造器 我個人的理解為在類中沒有加任何關鍵字的構造器稱為指定構造器,作用為初始化類中所有的例項儲存屬性 init 我個人理解為在類中 只能在類中,結構體和列舉裡面是沒有的 加上convenience關鍵字的構造器為便利構造器,作用為輔助性呼叫指定構造器進行一系列的工作。感覺...