Python入門100個例項(20)——物件的例子
從本例項學到什麼
- 結合例子闡述物件是什麼
- 物件的方法的例子
背景和例子
假設我們要開發學生成績管理系統。這個軟體具有以下功能:
1. 記錄每個學生的語文、數學和英語成績。
2. 求學生的總成績。
3. 求學生的三門課平均成績。
4. 統計學生的及格門數。
5. 對所有學生的成績按總分從高到低排序。
6. 統計三門課都及格的總人數。
開發這個軟體的話,把學生個體編制為物件是好做法。下面我們來看看,學生物件有什麼。
學生物件
學生物件有多個屬性組成,如下圖所示。
資料屬性有:
- 學號
- 姓名
- 性別
- 語文成績
- 數學成績
- 英語成績
方法屬性有:
- 求總分方法sum()
- 求平均分方法avg()
- 求及格門數方法pn()
為什麼會有這些方法屬性呢?這是因為,軟體的功能需求決定了求總分、求平均分和求及格門數是基礎操作。所謂基礎操作,就是實現軟體的各項功能的程式碼會反覆呼叫的操作。這些會被反覆呼叫的操作,應當構造為物件的方法。物件的方法是作用於物件資料屬性之上的函式。
有了學生物件的例子,我們可以這樣來回答物件是什麼。
問:物件是什麼?
答:在學生成績管理系統中,會用一個個物件來表示一個個學生。
問:物件有什麼?
答:學生物件有學號、姓名、性別、語文成績、數學成績和英語成績這些資料屬性,有求總分、求平均分等方法屬性。
問:物件怎麼儲存?
答:物件會佔據一片記憶體區域。每個屬性在其中佔據一部分儲存區域。
Python語言的物件
Python程式中,任何值都儲存為一個物件。每個物件有:
- 一個ID
- 一個型別
- 一個值
- 若干屬性
對於學生物件,全部資料屬性的組合可視為物件的值。
把一個值賦值給一個變數,實際上是使變數成為包含該值的物件的名字。
小結
本例項沒有提供例項程式,而是結合一個例子來闡述物件是什麼,物件的方法是什麼。
今後會講解如何寫程式碼定義學生類和生成學生物件。
要理解Python語言的物件概念。但不要急於求成,現階段沒吃透沒有關係,不耽誤讀程式和寫程式就行。等到你自己可以舉例說明物件這個概念的時候,你已經懂了。