淺談Python類別(Class) - 104學習精靈

文章推薦指數: 80 %
投票人數:10人

Q:什麼是類別(Class)? 簡單來說,就是物件(Object)的藍圖(blueprint)。

就像要生產一部汽車時,都會有設計圖,藉此可以知道此類汽車會有哪些特性及功能 ... 我的教室 教室設定 創建教室 創建教室 創建教室 創建教室 淺談Python類別(Class) Mike的Python學院 關注 MikeKu LearnCodeWithMike品牌創辦人 2021/10/19 淺談Python類別(Class) Q:什麼是類別(Class)?簡單來說,就是物件(Object)的藍圖(blueprint)。

就像要生產一部汽車時,都會有設計圖,藉此可以知道此類汽車會有哪些特性及功能,類別(Class)就類似設計圖,會定義未來產生物件(Object)時所擁有的屬性(Attribute)及方法(Method)。

而定義類別的語法如下:classclassname:  statement首先會有class關鍵字,接著自定類別名稱,最後加上冒號。

類別名稱的命名原則習慣上使用Pascal命名法,也就是每個單字字首大寫,不得使用空白或底線分隔單字,如下範例:classMyCars:Q:什麼是物件(Object)?就是透過類別(Class)實際建立的實體,就像實際生產出來的汽車(例如:Mazda)。

類別(Class)與物件(Object)的關係就像汽車設計圖與汽車實體。

而建立物件(Object)的語法如下:object_name=classname()範例:mazda=Cars()Q:什麼是屬性(Attribute)?負責存放物件(Object)的資料。

設定物件(Object)的屬性值語法如下:object_name.attribute_name=value範例:mazda=Cars()#建立Cars類別的物件mazda.color="blue"#顏色屬性建立物件(Object)後,才可進行屬性值(Attribute)的設定。

會建議使用建構式(Constructor)來進行屬性值(Attribute)的設定。

而存取物件的屬性值則透過以下語法:object_name.attribute_name範例:print(mazda.color)#執行結果:blueQ:什麼是建構式(Constructor)?於建立物件(Object)的同時,會自動執行的方法(Method)。

所以通常我們會在建構式(Constructor)中初始化物件(Object)的屬性值(Attribute)。

至少要有一個self參數,之後利用逗號區隔其他屬性,語法如下:def__init__(self,color,seat):  self.color=color#顏色屬性  self.seat=seat#座位屬性而這個self是什麼意思呢?它代表了實體物件的參考,也就是目前的物件(Object)。

這個self就是告訴類別(Class)目前是在設定哪一個物件的屬性(Attribute)。

所以範例中的意思就是此物件的color屬性等於傳入的color屬性值,此物件的seat屬性等於傳入的seat屬性值,而傳入屬性值的方式就是在建立物件的時候,如下範例:classCars:def__init__(self,color,seat):self.color=color#顏色屬性self.seat=seat#座位屬性mazda=Cars("blue",4)範例中於建立mazda物件(Object)的同時,生成其屬性並且初始化屬性值(color和seat)。

Q:什麼是方法(Method)?可以想像是物件(Object)的行為。

定義方法(Method)和函式(Function)的語法很像,都是def關鍵字開頭,接著自訂名稱,但是方法(Method)和建構式(Constructor)一樣至少要有一個self參數,語法如下:defmethod_name(self):  statement範例:classCars:def__init__(self,color,seat):self.color=color#顏色屬性self.seat=seat#座位屬性#方法(Method)defdrive(self):print(f"Mycaris{self.color}andhas{self.seat}seats.")mazda=Cars("blue",4)mazda.drive()#執行結果:Mycarisblueandhas4seats.如果想要學習更多的Python應用教學,歡迎前往LearnCodeWithMike(https://www.learncodewithmike.com/2020/01/python-class.html )網站觀看更多精彩內容。

OOPPythonlearncodewithmike.com [Python物件導向]淺談Python類別(Class) OOPPython2 0 1561拍手留言分享分享到:LineFacebookTwitter複製連結取消 收藏 更多內容來自Mike的Python學院 Mike與104學習精靈合作,在這邊分享LearnCodeWithMike網站上部分的Python「入門教學、爬蟲應用、資料分析與網頁開發」等主題的教學文章,而這也是LearnCodeWithMike品牌的初衷,以簡單易懂的實作幫助大家學習Python程式語言。

​ 關注



請為這篇文章評分?