用最直白的語言解釋最複雜的概念,一系列教學讓你在短時間內掌握 Python
今天終於要開始進入到大家最期待的(其實並沒有)物件導向啦!
本篇作為物件導向系列的第一篇,我們就簡單介紹一下物件導向是什麼?有哪些元素?最後順便來個練習題😉
物件導向(OOP,Object-Oriented Programming)
物件導向介紹
一般我們在寫程式通常都是透過一行一行指令告訴系統下一步應該做什麼,我們稱之為「流程導向」,而「物件導向」就是換一種思考方向,把程式設計成一個個物件實體。
我喜歡把它想像成是一個工廠,我們可以透過設計一個藍圖 (類別) 來描述一個實體應該有哪些零組件 (屬性) 跟功能 (方法),有了一個藍圖之後,我們就可以依據這張藍圖重複製造出好幾個實體 (物件),而不用每一個都重複設定。
- 類別(Class):藍圖的概念,定義該物件的屬性及方法
- 物件(Object):以類別為藍圖建立出的實體
- 屬性(Attribute):零組件的概念,該物件的相關資訊
- 方法(Method):功能的概念,該物件所能執行的事情
- 建構式(Constructor):建立物件的同時會自動執行的方法,通常定義物件有哪些屬性
實例:Dog 類別

物件導向範例-Dog 類別
- 定義一個類別
- 定義一個
__init__()
(我們之前文章提到過的套件中也有__init__.py
,概念上差不多,都是定義這個類別/套件裡面應該有什麼東西),會在建立物件的同時自動執行 __init__()
的第一個參數一定是自己 (self
),後面才會接屬性- 定義會用到的方法 (Method)
- 創建一個物件,
變數 = 類別(屬性1,屬性2)
然後就會得到自帶兩個屬性的物件了
實例: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 物件,並執行以下操作:
- 設置每個帳戶的帳號、所有人和初始餘額。
- 分別存入和提取一些金額。
- 在兩個帳戶之間轉賬一些金額。
- 檢查每個帳戶的最終餘額。
要求:
- 確保所有的存取和修改操作都透過定義的方法進行,不能直接訪問實例變量。
- 在轉賬操作中,確保源帳戶和目標帳戶都是有效的,並且源帳戶餘額足夠。
- 在程式中,適當地使用異常處理來處理可能發生的錯誤情況。
參考答案在下面的連結喔👇👇
~喜歡別忘了給我個讚或按下追蹤喔~