您好,登錄后才能下訂單哦!
小編給大家分享一下python中class的語法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
在面向對象的程序設計過程中有兩個重要概念:類(class)和對象(object,也被稱為實例,instance),其中類是某一批對象的抽象,可以把類理解成某種概念;對象才是一個具體存在的實體。從這個意義上看,日常所說的人,其實都是人的對象,而不是人類。
Python 定義類的簡單語法如下:
class 類名: 執行語句... 零個到多個類變量... 零個到多個方法...
類名只要是一個合法的標識符即可,但這僅僅滿足的是 Python 的語法要求:如果從程序的可讀性方面來看,Python 的類名必須是由一個或多個有意義的單詞連綴而成的,每個單詞首字母大寫,其他字母全部小寫,單詞與單詞之間不要使用任何分隔符。
從上面定義來看,Python 的類定義有點像函數定義,都是以冒號(:)作為類體的開始,以統一縮進的部分作為類體的。區別只是函數定義使用 def 關鍵字,而類定義則使用 class 關鍵字。
Python 的類定義由類頭(指 class 關鍵字和類名部分)和統一縮進的類體構成,在類體中最主要的兩個成員就是類變量和方法。如果不為類定義任何類變量和方法,那么這個類就相當于一個空類,如果空類不需要其他可執行語句,則可使用 pass 語句作為占位符。例如,如下類定義是允許的:
class Empty: pass
通常來說,空類沒有太大的實際意義。
類中各成員之間的定義順序沒有任何影響,各成員之間可以相互調用。
Python 類所包含的最重要的兩個成員就是變量和方法,其中類變量屬于類本身,用于定義該類本身所包含的狀態數據:而實例變量則屬于該類的對象,用于定義對象所包含的狀態數據:方法則用于定義該類的對象的行為或功能實現。
Python 是一門動態語言,因此它的類所包含的類變量可以動態增加或刪除(程序在類體中為新變量賦值就是增加類變量),程序也可在任何地方為已有的類增加變量;程序可通過 del 語句刪除己有類的類變量。
類似的是,Python 對象的實例變量也可以動態增加或刪除(只要對新實例變量賦值就是增加實例變量),因此程序可以在任何地方為己有的對象增加實例變量;程序可通過 del 語句刪除已有對象的實例變量。
在類中定義的方法默認是實例方法,定義實例方法的方法與定義函數的方法基本相同,只是實例方法的第一個參數會被綁定到方法的調用者(該類的實例),因此實例方法至少應該定義一個參數,該參數通常會被命名為 self。
注意:實例方法的第一個參數并不一定要叫 self,其實完全可以叫任意參數名,只是約定俗成地把該參數命名為 self,這樣具有最好的可讀性。
在實例方法中有一個特別的方法:__init__,這個方法被稱為構造方法。構造方法用于構造該類的對象,Python 通過調用構造方法返回該類的對象(無須使用 new)。
Python 中很多這種以雙下劃線開頭、雙下劃線結尾的方法,都具有特殊的意義,本教程后面還會詳細介紹這些特殊的方法。
構造方法是一個類創建對象的根本途徑,因此 Python 還提供了一個功能:如果開發者沒有為該類定義任何構造方法,那么 Python 會自動為該類定義一個只包含一個 self 參數的默認的構造方法。
下面程序將定義一個 Person 類:
class Person : '這是一個學習Python定義的一個Person類' # 下面定義了一個類變量 hair = 'black' def __init__(self, name = 'Charlie', age=8): # 下面為Person對象增加2個實例變量 self.name = name self.age = age # 下面定義了一個say方法 def say(self, content): print(content)
上面的 Person 類代碼定義了一個構造方法,該構造方法只是方法名比較特殊:__init__,該方法的第一個參數同樣是 self,被綁定到構造方法初始化的對象。
看完了這篇文章,相信你對python中class的語法有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。