iT邦幫忙

2022 iThome 鐵人賽

DAY 11
0
Software Development

闖進Python異世界系列 第 11

[Day 11] 闖進Python異世界 - Class 你會開模嗎?

  • 分享至 

  • xImage
  •  

先不從開模開始說明,我們先聊聊什麼事物件吧!
物件包含兩種要素,特性和行為!
舉一輛汽車為例,

  • 特性有馬力、座位數、材料等
  • 行為有加速、煞車、停車等

如果每做一輛汽車,就要重新思考它需要什麼特性、行為,我們一定會覺得很麻煩,因為做著同樣的事情無數遍。取而代之的是我們會開一個模具來製作這個物件,這樣我們就可以大量生產了!

「特性」、「行為」在程式語言中有對應的專有名詞:「屬性」、「方法」。


在 Python 裡面有很多已經開好的模具,你可以直接使用。
或許你沒有感覺,那就讓我舉個例子吧!

print(type("string")) # <class 'str'>
print(type([1,2])) # <class 'list'>

諸如str, list都是模具的概念,你只要賦值給變數,一個熱騰騰的物件就出爐啦!


如果沒有開模,我們本應如何製作列表物件呢?

  1. 我們會開一個資料容器
  2. 設定其屬性,如長度
  3. 定義函式,如: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


上一篇
[Day 10] 闖進Python異世界 - Set
下一篇
[Day 12] 闖進Python異世界 - Class 屬性 - 實戰開模 Part 1/2
系列文
闖進Python異世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言