爲什麼會有__init__這個方法呢?其實我們完全可以用別的方法(換一個名稱)代替,但由於我們經常會用到這種定義的方法,所以就產生了__init__()這樣一種系統自帶的,方便自己對屬性進行定義的方法,這種方法也被稱爲構造器(constructer)。
定義類的時候,若是添加__init__方法,那麼在創建類的實例的時候,實例會自動調用這個方法,一般用來對實例的屬性進行初始化。
例如:
class testClass(object):
def __init__(self, name, gender):
"""
定義__init__方法,這裏有三個參數,這個self指的是創建實例的時候的實例本身(即例子中的testman)。
當然self也可以寫成其他東西,比如me也是可以的,這樣的話,下面的self.Name就要改寫成me.Name。
"""
self.name = name # 等號左邊的name是實例的屬性,右邊的name是方法__init__的參數,二者不同的。
self.gender = gender # 同name
print('hello') # 這裏是爲了說明在創建類的實例的時候,__init__方法就立馬被調用了。
testman = testClass('neo', 'male')
"""
創建了類testClass的一個實例,類中有__init__這個方法,在創建類的實例的時候,我們需要有和__init__匹配的參數。
由於self指的就是我們創建的實例本身,所以self是不用傳入的。
這條語句一出來,實例testman的兩個屬性name, gender就被賦值初始化了。其中name就是neo,gender就是male.
"""
class testClass2(object):
def __init__(me, name, gender):
me.name = name
me.gender = gender
print('hello2')
testman2 = testClass2('jack', 'male')
print(testman2.name)
print(testman2.gender)