上面的例子中,person是乙個類,_init_是乙個特殊的方法(init是單詞初始化initialization的省略形式),在使用類建立物件之後被執行,用於給新建立的物件初始化屬性用。
self.name = name 就是初始化屬性的語句
_init_是乙個方法,這個方法裡面有三個形參self、name、age。self表示物件本身,誰呼叫就表示誰。
這裡self.name = name 和 self.age = age表示將外部傳來的name 和 age,賦值給了self 物件的name和age屬性。
下面是建立物件:p = person('小明',20) ---------這句話就建立出來了乙個具體的人,並且給這個人起了個名字叫小明,指定了小明的年齡為20,並且將小明這個物件賦值給了變數p,此時p就表示小明這個人(物件)。
這句話就代表,創造了乙個人物件(小明),並呼叫了 init(self,name,age) 方法完成了該人的屬性的初始化,小明賦值給name,20賦值給age屬性。
而self是不需要傳參的,因為slef表示物件本身,誰呼叫就表示誰,此時的self就表示person('小明',20),也就是p。
也就是,我們創造出了p,然後給p的屬性賦了值,此時p就表示擁有屬性值之後的那個人。
可以使用點.
來呼叫物件的屬性,比如輸出p的名字和年齡,完整**為:
例子:接下來我們再在person類中定義乙個方法,用於自我介紹:
def desc(self):
print("我叫%s,今年%d歲" % (self.name, self.age))
在類的內部,訪問自己的屬性和方法,都需要通過self,self就是外部物件在類內部的表示,此時可以使用p呼叫該方法,完整**如下:
class person:
def __init__(self, name, age):
self.name = name
self.age = age
def desc(self):
print("我叫%s,今年%d歲" % (self.name, self.age))
p = person('傑拉考', 200)
# 呼叫自我介紹方法 desc方法中的self就是外部的這個p
p.desc()
輸出為:
我叫傑拉考,今年200歲
當前desc方法中的self,就是外部的那個物件p,如果我再定義了乙個物件p2,那麼p2呼叫desc時,desc中的self就表示p2這個物件。正所謂:誰呼叫,就表示誰
詳細解讀Python中的 init
init 方法意義重大的原因有兩個。第乙個原因是在物件生命週期中初始化是最重要的一步 每個物件必須正確初始化後才能正常工作。第二個原因是init 引數值可以有多種形式。因為有很多種方式為init 提供引數值,對於物件建立有大量的用例,我們可以看看其中的幾個。我們想盡可能的弄清楚,因此我們需要定義乙個...
python中對 init 的理解
一 self的位置是出現在 首先,self是在類的方法中的,在呼叫此方法時,不用給self賦值,python會自動給他賦值,而且這個值就是類的例項 物件本身。也可以將self換成別的叫法例如seef,但不建議,因為大家習慣也預設了寫成self。二 self的值是什麼?self的值是python會自動...
如何理解 Python 中的 init
定義類的時候,若是新增 init 方法,那麼在建立類的例項的時候,例項會自動呼叫這個方法,一般用來對例項的屬性進行初使化。比如 class testclass def init self,name,gender 定義 init 方法,這裡有三個引數,這個self指的是一會建立類的例項的時候這個被建立...