說明:關(guān)于類的這部分,我參考了《Learning Python》一書的講解。
創(chuàng)建類
創(chuàng)建類的方法比較簡單,如下:
代碼如下:
class Person:
注意,類的名稱一般用大寫字母開頭,這是慣例。當(dāng)然,如果故意不遵循此慣例,也未嘗不可,但是,會給別人閱讀乃至于自己以后閱讀帶來麻煩。既然大家都是靠右走的,你就別非要在路中間睡覺了。
接下來,一般都要編寫構(gòu)造函數(shù),在寫這個函數(shù)之前,先解釋一下什么是構(gòu)造函數(shù)。
代碼如下:
class Person:
def __init__(self, name, lang, website):
self.name = name
self.lang = lang
self.website = website
上面的類中,首先呈現(xiàn)出來的是一個名為:__init__()的函數(shù),注意,這個函數(shù)是以兩個下劃線開始,然后是init,最后以兩個下劃線結(jié)束。這是一個函數(shù),就跟我們此前學(xué)習(xí)過的函數(shù)一樣的函數(shù)。但是,這個函數(shù)又有點奇特,它的命名是用“__”開始和結(jié)束。
請看官在這里要明確一個基本概念,類就是一種對象類型,和跟前面學(xué)習(xí)過的數(shù)值、字符串、列表等等類型一樣。比如這里構(gòu)建的類名字叫做Person,那么就是我們要試圖建立一種對象類型,這種類型被稱之為Person,就如同有一種對象類型是list一樣。
在構(gòu)建Person類的時候,首先要做的就是對這種類型進(jìn)行初始化,也就是要說明這種類型的基本結(jié)構(gòu),一旦這個類型的對象被調(diào)用了,第一件事情就是要運行這個類型的基本結(jié)構(gòu),也就是類Person的基本結(jié)構(gòu)。就好比我們每個人,在頭腦中都有關(guān)于“人”這樣一個對象類型(對應(yīng)著類),一旦遇到張三(張三是一個具體人),我們首先運行“人”這個類的基本結(jié)構(gòu):一個鼻子兩只眼,鼻子下面一張嘴。如果張三符合這個基本機構(gòu),我們不會感到驚詫(不報錯),如果張三不符合這個基本結(jié)構(gòu)(比如三只眼睛),我們就會感到驚詫(報錯了)。
由于類是我們自己構(gòu)造的,那么基本結(jié)構(gòu)也是我們自己手動構(gòu)造的。在類中,基本結(jié)構(gòu)是寫在__init__()這個函數(shù)里面。故這個函數(shù)稱為構(gòu)造函數(shù),擔(dān)負(fù)著對類進(jìn)行初始化的任務(wù)。
還是回到Person這個類,如果按照上面的代碼,寫好了,是不是__init__()就運行起來了呢?不是!這時候還沒有看到張三呢,必須看到張三才能運行。所謂看到張三,看到張三這樣一個具體的實實在在的人,此動作,在python中有一個術(shù)語,叫做實例化。當(dāng)類Person實例化后立刻運行__init__()函數(shù)。
代碼如下:
#!/usr/bin/env python
#coding:utf-8
class Person:
def __init__(self, name, lang, website):
新聞熱點
疑難解答
圖片精選