iT邦幫忙

2024 iThome 鐵人賽

DAY 10
1
Python

Python探索之旅:從基礎到實踐系列 第 10

DAY 10: 物件導向程式開發——打造高效的 Python 程式架構

  • 分享至 

  • xImage
  •  

物件導向程式設計(OOP)是一種強大的編程範式,透過將程式組織成物件與類別,讓程式更具結構性、可重用性與擴展性。今天,我們將深入學習 OOP 的基本概念,並了解如何在 Python 中應用這些原則來開發更具模組化和靈活性的程式架構。


1. 什麼是物件導向程式設計 (OOP)?

OOP 是基於物件(實例化的類別)與類別(物件的模板)的設計方式。在 OOP 中,我們將程式中的實體(如動物、汽車、帳戶等)轉化為物件,並賦予它們屬性和行為。這樣的設計方式模擬現實世界,讓程式碼更具可讀性和可維護性。

OOP 的四大支柱:

  1. 封裝:將物件的狀態(屬性)和行為(方法)封裝起來,保護資料的完整性。
  2. 繼承:允許一個類別繼承另一個類別的屬性和方法,實現程式碼的重用。
  3. 多型:允許多個類別在同一介面下進行不同的實現。
  4. 抽象:隱藏物件的複雜性,僅提供必要的操作給使用者。

2. Python 中的類別與物件

在 Python 中,我們使用 class 關鍵字來定義類別,並透過這個類別來創建物件。每個物件都是這個類別的實例,它擁有類別所定義的屬性和方法。

範例:建立一個城市的類別

class City:
    def __init__(self, name, population):
        self.name = name       # 屬性: 城市名稱
        self.population = population  # 屬性: 城市人口

    def describe(self):
        print(f"{self.name} 的人口是 {self.population} 人")

    def grow_population(self, increase):
        self.population += increase

# 創建物件
city1 = City("台北", 2500000)
city2 = City("台中", 2800000)

# 使用物件方法
city1.describe()
city2.grow_population(50000)
city2.describe()

在這個範例中,City 類別有兩個屬性:城市名稱和人口,並且有兩個方法:描述城市與增加人口。我們創建了兩個城市物件 city1city2,並透過這些物件來操作屬性。


3. 繼承與擴展類別

繼承是一個強大的 OOP 概念,允許一個類別繼承另一個類別的屬性和方法,從而避免重複編寫相似的程式碼。

範例:擴展城市類別

class CapitalCity(City):
    def __init__(self, name, population, country):
        super().__init__(name, population)  # 繼承父類別的屬性
        self.country = country   # 新增屬性: 國家

    def describe_capital(self):
        print(f"{self.name} 是 {self.country} 的首都,人口是 {self.population} 人")

# 創建首都城市的物件
capital = CapitalCity("台北", 2500000, "台灣")
capital.describe_capital()

在這裡,我們創建了一個 CapitalCity 類別,繼承了 City 的屬性和方法,並額外增加了國家的屬性及描述首都的方法。透過繼承,我們可以更靈活地擴展功能。


4. 多型與方法重寫

多型允許我們在子類別中重寫父類別的方法,以實現不同的行為。

範例:重寫方法

class City:
    def describe(self):
        print(f"這是一個城市")

class CapitalCity(City):
    def describe(self):
        print(f"這是一個首都")

city = City()
capital = CapitalCity()

city.describe()    # 輸出: 這是一個城市
capital.describe() # 輸出: 這是一個首都

在這個範例中,我們透過方法重寫實現了多型,不同類別有著各自獨特的行為,但可以使用相同的介面。


5. 模組化開發

模組是 Python 中將程式碼進行組織和重用的一種方式。透過模組化,我們可以將類別和函數分別存放在不同的檔案中,並在需要時導入使用,這樣程式碼的結構更清晰,也更容易維護。

範例:模組化城市類別

  1. 創建一個 city.py 檔案,並在其中定義城市類別。
# city.py
class City:
    def __init__(self, name, population):
        self.name = name
        self.population = population

    def describe(self):
        print(f"{self.name} 的人口是 {self.population} 人")
  1. 在主程式中導入模組並使用類別。
# main.py
from city import City

city1 = City("台南", 1800000)
city1.describe()

6. 結論

透過物件導向程式設計,我們可以將複雜的問題拆解成小型的、可管理的物件,從而提高程式碼的可維護性和可擴展性。OOP 的四大支柱:封裝、繼承、多型與抽象,讓我們能夠靈活地設計和開發 Python 程式,並透過模組化的方式提升專案的結構和重用性。

掌握物件導向程式設計,將大幅提升我們的程式開發技能,讓我們的 Python 專案更具規模化與專業性。


上一篇
DAY 9: 進階學習 - 檔案系統的使用
下一篇
DAY 11: 打造自己的模組——構建大型專案的核心架構
系列文
Python探索之旅:從基礎到實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言