先不從開模開始說明,我們先聊聊什麼事物件吧!
物件包含兩種要素,特性和行為!
舉一輛汽車為例,
如果每做一輛汽車,就要重新思考它需要什麼特性、行為,我們一定會覺得很麻煩,因為做著同樣的事情無數遍。取而代之的是我們會開一個模具來製作這個物件,這樣我們就可以大量生產了!
「特性」、「行為」在程式語言中有對應的專有名詞:「屬性」、「方法」。
在 Python 裡面有很多已經開好的模具,你可以直接使用。
或許你沒有感覺,那就讓我舉個例子吧!
print(type("string")) # <class 'str'>
print(type([1,2])) # <class 'list'>
諸如str
, list
都是模具的概念,你只要賦值給變數,一個熱騰騰的物件就出爐啦!
如果沒有開模,我們本應如何製作列表物件呢?
append()
, clear()
這些事情將重複無數遍,直到我們不需要列表物件!
不覺得麻煩嗎?那就讓我們繼續研究開模的技術吧。
直接從範例來介紹吧!
假設在程式裡面,只存在著 int
, float
, str
, bool
與各種運算子,我們要怎麼去表達一個學生的身份?
我們會在主程式中宣告很多的變數:
johnName = "John"
johnId = "A123456789"
johnSeatNumber = 25
bobName = "Bob"
bobId = "A123456789"
bobSeatNumber = 25
今天班上有 20
個同學,難道我們要宣告60
個變數嗎? 當然不會!
替代方案:宣告一個類別,製作 20
個該類別的物件
宣告一個類別就是開模啦!
開模的關鍵字是 class
class className :
pass
這樣其實就開好模了,只是他似乎沒什麼用!
我們要先思考一下這個模具要用來做什麼的?
這個物件出爐後,他有什麼特性?他有什麼行為?
下一篇,我們來繼續介紹 Python 的 class