Python class:定義類

前面章節中已經提到,類僅僅充當圖紙的作用,本身並不能直接拿來用,而只有根據圖紙造出的實際物品(對象)才能直接使用。因此,Python 中使用類的順序是:先創建(定義)類,然後再創建類的實例對象,通過實例對象實現特定的功能。本節來先學習如何創建一個類。

Python 中,創建一個類使用 class 關鍵字實現,其基本語法格式如下:

class 類名:
    零個到多個類屬性...
    零個到多個類方法...

注意,類中屬性和方法所在的前後順序沒有任何影響,且各成員之間可以相互調用。

類名只要是一個合法的標識符即可,但這僅僅滿足的是 Python 的語法要求:如果從程序的可讀性方面來看,Python 的類名必須是由一個或多個有意義的單詞連綴而成的,每個單詞首字母大寫,其他字母全部小寫,單詞與單詞之間不要使用任何分隔符,例如類名爲“TheFirstDemo”。

從上面定義來看,Python 的類定義有點像函數定義,都是以冒號(:)作爲類體的開始,以統一縮進的部分作爲類體的。區別只是函數定義使用 def 關鍵字,而類定義則使用 class 關鍵字。

Python 的類定義由類頭(指 class 關鍵字和類名部分)和統一縮進的類體構成,在類體中最主要的兩個成員就是屬性和方法。如果不爲類定義任何屬性和方法,那麼這個類就相當於一個空類,如果空類不需要其他可執行語句,則可使用 pass 語句作爲佔位符。例如,如下類定義是允許的:

class Empty:
    pass

通常來說,空類沒有太大的實際意義。

下面程序將定義一個 Person 類:

class Person :
    '''這是一個學習Python定義的一個Person類'''
    # 下面定義了一個類屬性
    hair = 'black'
    # 下面定義了一個say方法
    def say(self, content):
        print(content)

與函數類似的是,Python 也允許爲類定義說明文檔,該文檔同樣被放在類聲明之後、類體之前,如上面程序中第二行的字符串所示。

可以看到,上面代碼創建了一個名爲 Person 的類,該類中創建了一個名爲 hair 的類屬性,需要注意的是,根據定義屬性位置的不同,在各個類方法之外定義的稱爲類屬性或類變量(如 hair 屬性),而在類方法中定義的屬性稱爲實例屬性(或實例變量)。

不僅如此,Person 類中還創建了一個 say() 類方法,細心的讀者可能已經看到,該方法包含兩個參數,分別是 self 和 content。可以肯定的是,content 參數就只是一個普通參數,沒有特殊含義,但 self 比較特殊,並不是普通的參數,它的作用和用法會在後續章節中詳細介紹。

注意,更確切地說,say() 是一個實例方法,除此之外,Python 類中還可以定義類方

發佈了73 篇原創文章 · 獲贊 10 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章