看到Python中有個函式名比較奇特,__init__我知道加下劃線的函式會自動執行,但是不知道它存在的具體意義..
今天看到<<簡明 Python 教程>>第11章 物件導向的程式設計,中這樣介紹它:"給C++/Java/C#程式設計師的註釋
Python中所有的類成員(包括資料成員)都是 公共的 ,所有的方法都是 有效的 。
只有一個例外:如果你使用的資料成員名稱以 雙下劃線字首 比如__privatevar,Python的名稱管理體系會有效地把它作為私有變數。
這樣就有一個慣例,如果某個變數只想在類或物件中使用,就應該以單下劃線字首。而其他的名稱都將作為公共的,可以被其他類/物件使用。記住這只是一個慣例,並不是Python所要求的(與雙下劃線字首不同)。
同樣,注意__del__方法與 destructor 的概念類似。"
恍然大悟原來__init__在類中被用做建構函式,固定也寫法,看似很死板,其實有道理
def __init__(self, name): '''Initializes the person's data.''' self.name = name print '(Initializing %s)' % self.name # When this person is created, he/she # adds to the population Person.population += 1
name變數屬於物件(它使用self賦值)因此是物件的變數
self.name的值根據每個物件指定,這表明了它作為物件的變數的本質。