Python中的__init__到底是幹什麼的?

pythontab發表於2015-04-22

看到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的值根據每個物件指定,這表明了它作為物件的變數的本質。


相關文章