iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
Software Development

學會 Python 不可怕:我每天學一點的 30 天筆記系列 第 24

Day24 : 基礎物件導向概念 – class、屬性、方法

  • 分享至 

  • xImage
  •  

在寫程式時,常會遇到「某個東西有屬性、有行為」的情況,例如:
一個學生有名字(屬性),也能打招呼(方法)
一隻狗有品種(屬性),也能叫(方法)
一台車有顏色(屬性),也能開(方法)
在 Python 中,可以用 class(類別)來把「資料」和「行為」封裝在一起,這就是「物件導向程式設計」的核心概念

1. class 是什麼?
class 就像是一個「藍圖」,可以用它來建立很多「物件」
舉例來說:「學生」是一個類別,「Mia」、「Bob」是兩個學生物件

2. 最基本的 class 寫法
這段程式碼本身只是「定義類別」,還沒有「建立物件」和「呼叫方法」,所以不會輸出任何東西
https://ithelp.ithome.com.tw/upload/images/20251008/20178872YNdSXcy7fC.png

  • class Student : 建立一個名為 Student 的類別
  • init : 這是一個「建構子」,在建立物件時會自動執行
  • self : 代表「物件自己」,每個方法的第一個參數都要有 self
  • self.name、self.age : 這是這個物件的「屬性」
  • say_hello : 這是一個「方法」,也就是物件能執行的動作

3. 用 class 建立物件
https://ithelp.ithome.com.tw/upload/images/20251008/20178872NFkf8GJZkC.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251008/20178872lwSSeUWuq2.png

  • Student("Amy", 22) 會呼叫 init,建立一個學生物件,並把 name 設為 "Amy",age 設為 22
  • student1.say_hello() 會呼叫方法 say_hello
  • f-string f"大家好,我是 {self.name},今年 {self.age} 歲!"會自動把 self.name 換成 "Amy",self.age 換成 22

4. class 的組成
class : 藍圖,定義資料與行為,ex : class Student:
屬性 : 存放資料,ex : self.name, self.age
方法 : 定義行為,ex : say_hello()
物件 : 依照藍圖建立出來的實體,ex : student1 = Student(...)
init : 建構子,物件一建立就會被呼叫,ex : def init(...)
self : 指向自己的變數,用來存取物件屬性與方法,ex : self.name = name

5. 小練習
https://ithelp.ithome.com.tw/upload/images/20251008/20178872a2t5OS9KYp.png
結果會輸出
https://ithelp.ithome.com.tw/upload/images/20251008/20178872RrOo7Akklh.png

總結

  • class 是藍圖,object 是依藍圖建立出來的實體
  • init 會幫你在物件建立時設定初始資料
  • self 是物件本身的代稱
  • 方法就是物件能做的事

上一篇
Day23 : 常用內建函式 – len、sum、enumerate、zip
系列文
學會 Python 不可怕:我每天學一點的 30 天筆記24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言