不再迷茫!手把手的Python入門教學-物件導向初探

更新於 發佈於 閱讀時間約 4 分鐘
用最直白的語言解釋最複雜的概念,一系列教學​讓你在短時間內掌握 Python

今天終於要開始進入到大家最期待的(其實並沒有)物件導向啦!
本篇作為物件導向系列的第一篇,我們就簡單介紹一下物件導向是什麼?有哪些元素?最後順便來個練習題😉

物件導向(OOP,Object-Oriented Programming)

物件導向介紹

一般我們在寫程式通常都是透過一行一行指令告訴系統下一步應該做什麼,我們稱之為「流程導向」,而「物件導向」就是換一種思考方向,把程式設計成一個個物件實體。

我喜歡把它想像成是一個工廠,我們可以透過設計一個藍圖 (類別) 來描述一個實體應該有哪些零組件 (屬性) 跟功能 (方法),有了一個藍圖之後,我們就可以依據這張藍圖重複製造出好幾個實體 (物件),而不用每一個都重複設定。

  • 類別(Class):藍圖的概念,定義該物件的屬性及方法
  • 物件(Object):以類別為藍圖建立出的實體
  • 屬性(Attribute):零組件的概念,該物件的相關資訊
  • 方法(Method):功能的概念,該物件所能執行的事情
  • 建構式(Constructor):建立物件的同時會自動執行的方法,通常定義物件有哪些屬性

實例:Dog 類別

物件導向範例-Dog 類別

物件導向範例-Dog 類別

  • 定義一個類別
  • 定義一個 __init__() (我們之前文章提到過的套件中也有__init__.py,概念上差不多,都是定義這個類別/套件裡面應該有什麼東西),會在建立物件的同時自動執行
  • __init__() 的第一個參數一定是自己 (self),後面才會接屬性
  • 定義會用到的方法 (Method)
  • 創建一個物件,變數 = 類別(屬性1,屬性2) 然後就會得到自帶兩個屬性的物件了

實例:Car 類別

物件導向範例-Car 類別

物件導向範例-Car 類別

一開始看會不知道在寫什麼,希望看到現在有稍微理解一些概念了,概念懂了剩下就要靠練習,底下有一個小題目,試著做做看吧!


練習題:BankAccount 類別

定義一個 BankAccount 類別,它具有以下功能:

每個 BankAccount 物件都有以下實例變量:

  • account_number: 表示帳號的字串
  • balance: 表示帳戶餘額的浮點數
  • owner: 表示帳戶持有人的字串

類別應提供以下方法:

  • deposit(self, amount): 將指定金額存入帳戶,並更新餘額。
  • withdraw(self, amount): 從帳戶中提取指定金額,如果餘額不足則顯示 ValueError 異常。
  • check_balance(self): 返回帳戶當前餘額。
  • transfer(self, other_account, amount): 將指定金額從當前帳戶轉移到另一個 BankAccount 物件,如果餘額不足則顯示 ValueError 異常。

編寫一個程式,創建兩個 BankAccount 物件,並執行以下操作:

  • 設置每個帳戶的帳號、所有人和初始餘額。
  • 分別存入和提取一些金額。
  • 在兩個帳戶之間轉賬一些金額。
  • 檢查每個帳戶的最終餘額。

要求:

  • 確保所有的存取和修改操作都透過定義的方法進行,不能直接訪問實例變量。
  • 在轉賬操作中,確保源帳戶和目標帳戶都是有效的,並且源帳戶餘額足夠。
  • 在程式中,適當地使用異常處理來處理可能發生的錯誤情況。

參考答案在下面的連結喔👇👇


~喜歡別忘了給我個讚或按下追蹤喔~

留言
avatar-img
留言分享你的想法!
avatar-img
の倉的程式小天地
0會員
16內容數
專為初學者打造的Python簡易教學,從零開始不卡關
2025/06/26
有差嗎?不就是資料的擺放方式不一樣而已…針對不同的問題,使用不同的資料結構,在程式運行的效率上會有顯著的影響~今天就來談談:堆疊、隊列、鏈結串列!
Thumbnail
2025/06/26
有差嗎?不就是資料的擺放方式不一樣而已…針對不同的問題,使用不同的資料結構,在程式運行的效率上會有顯著的影響~今天就來談談:堆疊、隊列、鏈結串列!
Thumbnail
2025/06/26
舉個例子,有一本 50 萬字的英文小說,要把裡面 t 開頭 e 結尾的單字全部列出來,於是首先我們要訂個規則叫「t 開頭 e 結尾」,然後讓程式依循這個規則把所有字找出來,而這個 “規則” 就是正規表達式。
Thumbnail
2025/06/26
舉個例子,有一本 50 萬字的英文小說,要把裡面 t 開頭 e 結尾的單字全部列出來,於是首先我們要訂個規則叫「t 開頭 e 結尾」,然後讓程式依循這個規則把所有字找出來,而這個 “規則” 就是正規表達式。
Thumbnail
2025/06/25
如果今天要產生一個序列結構 (tuple、list、set、dictionary) ,最直覺就是寫一個迴圈嘛~但一個最簡單的迴圈就要兩三行,如果還有條件判斷就又更長了,今天的內容就是把要用到一整個迴圈寫法的程式碼,縮寫成一行!
Thumbnail
2025/06/25
如果今天要產生一個序列結構 (tuple、list、set、dictionary) ,最直覺就是寫一個迴圈嘛~但一個最簡單的迴圈就要兩三行,如果還有條件判斷就又更長了,今天的內容就是把要用到一整個迴圈寫法的程式碼,縮寫成一行!
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
Python資料視覺化在數據分析中扮演關鍵角色,透過視覺化捕捉數據模式、趨勢和異常,透過Matplotlib等工具創建專業圖表變相對簡單和高效。
Thumbnail
這一節談的是向量的定義,以及如何運用向量來建立模擬物體運動時,關於位置和速度間的關係式。
Thumbnail
這一節談的是向量的定義,以及如何運用向量來建立模擬物體運動時,關於位置和速度間的關係式。
Thumbnail
這一節談的是用物件導向程式設計(object-oriented programming, OOP)的方式來實作隨機漫步。
Thumbnail
這一節談的是用物件導向程式設計(object-oriented programming, OOP)的方式來實作隨機漫步。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
本文介紹了Python中的物件導向程式設計的重要概念,包括類別、繼承、多型、封裝、介面、抽象類別、靜態類別、列舉、委派、Lambda表達式、泛型和反射。每個概念都有對應的程式碼範例來說明其用法和功能。這些概念對於理解和使用Python進行物件導向程式設計至關重要。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
Python是一種易學且功能強大的程式語言,具有直譯、動態語法等特性,並擁有豐富的標準庫。它在各領域如Web開發、數據科學和人工智慧等得到廣泛應用,並被許多大公司如Google和Facebook等使用。Python還有強大的框架、豐富的交互機能、和龐大的社區。
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
本文在介紹如何用Python繪製各點大小不同的散布圖及用箭頭標註特殊點
Thumbnail
前幾篇討論到各種裝飾器的用法,本文將介紹另外一種裝飾器,可以將方法轉換成屬性來使用。 property也可以動態的取出物件的值,隨著時間或其他運算改變所產生的值,讓我們繼續往下看更多介紹吧。
Thumbnail
前幾篇討論到各種裝飾器的用法,本文將介紹另外一種裝飾器,可以將方法轉換成屬性來使用。 property也可以動態的取出物件的值,隨著時間或其他運算改變所產生的值,讓我們繼續往下看更多介紹吧。
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
Thumbnail
本文讓我們來淺談一下類別是什麼? 若想看詳細一點的python官方教學可點此連結 Python 的類別(Class)是一種面向物件導向程式設計的概念,讓你能夠創建具有屬性和方法的物件。類別是對現實世界中事物的抽象,它包含數據和操作這些數據的方法。它非常的抽象,想像一個類別就像是一個蛋糕模具,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News