iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0
Python

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

DAY 11: 打造自己的模組——構建大型專案的核心架構

  • 分享至 

  • xImage
  •  

當我們的程式逐漸變得龐大且複雜時,將程式分割成多個模組來管理就變得至關重要。模組化不僅有助於分工合作,還可以提升程式的可讀性、可維護性和重用性。今天,我們將學習如何打造自己的模組,並應用在一個較大型的專案中,讓程式碼更加組織化和有條理。


1. 什麼是模組化開發?

模組化開發指的是將一個大型程式拆解成多個相對獨立的部分,每個部分稱為「模組」。每個模組專注於處理特定的功能,並可以在需要時進行呼叫。這樣做不僅讓程式碼更容易管理,也可以重用已有的模組,減少重複撰寫相似的程式碼。

在 Python 中,模組化開發很容易實現。我們只需將類別或函數放置在一個單獨的檔案中,並透過 import 語法將它們引入其他檔案進行使用。


2. 打造自己的模組

我們將透過一個專案來展示如何將程式分割成多個模組並進行調用。假設我們正在開發一個小型的庫存管理系統,這個系統需要處理「產品」和「訂單」兩個核心模組。

專案架構:

project/
│
├── product.py          # 負責處理產品的模組
├── order.py            # 負責處理訂單的模組
├── main.py             # 主程式,負責整合並執行模組
└── utils.py            # 工具模組,處理通用的功能

3. 設計模組

1) 產品模組 (product.py)

首先,我們需要一個產品模組來管理庫存中的商品資料。這個模組應包含一個 Product 類別來描述產品的屬性(如名稱、價格、數量等)。

# product.py
class Product:
    def __init__(self, name, price, quantity):
        self.name = name
        self.price = price
        self.quantity = quantity

    def update_quantity(self, amount):
        """更新庫存數量"""
        self.quantity += amount

    def show_product_info(self):
        """顯示產品的基本資訊"""
        print(f"產品: {self.name}, 價格: {self.price}, 庫存數量: {self.quantity}")

2) 訂單模組 (order.py)

接著,我們需要一個訂單模組來處理每筆訂單。這裡,我們可以創建一個 Order 類別來管理訂單的明細,並計算總金額。

# order.py
class Order:
    def __init__(self):
        self.items = []

    def add_item(self, product, quantity):
        """將產品添加到訂單中"""
        if quantity <= product.quantity:
            product.update_quantity(-quantity)
            self.items.append((product, quantity))
        else:
            print(f"庫存不足,無法購買 {quantity} 個 {product.name}")

    def calculate_total(self):
        """計算訂單總金額"""
        total = sum(product.price * quantity for product, quantity in self.items)
        return total

    def show_order_summary(self):
        """顯示訂單明細"""
        print("訂單明細:")
        for product, quantity in self.items:
            print(f"{product.name} - 數量: {quantity}, 單價: {product.price}")
        print(f"總金額: {self.calculate_total()}")

3) 工具模組 (utils.py)

我們可以將常用的工具函數集中在一個工具模組中,這樣其他模組可以直接調用,而不需要重複定義。

# utils.py
def format_currency(amount):
    """將數字格式化為貨幣形式"""
    return f"${amount:.2f}"

4. 在主程式中整合模組

main.py 中,我們將匯入各個模組,並透過它們來構建整個系統的核心流程。

# main.py
from product import Product
from order import Order
from utils import format_currency

# 創建一些產品
product1 = Product("筆記型電腦", 15000, 10)
product2 = Product("智慧型手機", 8000, 20)

# 創建一個訂單
order = Order()

# 添加產品到訂單中
order.add_item(product1, 2)
order.add_item(product2, 3)

# 顯示產品資訊
product1.show_product_info()
product2.show_product_info()

# 顯示訂單明細
order.show_order_summary()

# 格式化並顯示訂單總金額
total = order.calculate_total()
print(f"訂單總金額: {format_currency(total)}")

在這裡,我們成功地透過多個模組來管理產品、訂單和工具函數,並在主程式中將它們整合在一起進行調用。這種模組化的結構不僅提升了程式的可讀性,還可以輕鬆擴展系統功能。


5. 模組化開發的優勢

模組化開發 具有以下優點:

  • 易於維護:將不同功能分割成模組後,更新或修正錯誤變得更加簡單。
  • 重用性:模組可以在其他專案中重複使用,節省開發時間。
  • 團隊合作:多個開發人員可以同時開發不同的模組,分工更加明確。
  • 易於擴展:隨著專案的成長,我們可以隨時新增或修改模組,而不會影響整體系統的穩定性。

6. 結論

透過模組化開發,我們可以有效地管理大型專案,確保程式的可維護性和可讀性。今天的內容展示了如何分割程式成多個模組,並透過匯入這些模組來整合功能。隨著專案變得越來越複雜,模組化會是程式設計中的重要基石,讓我們能夠在開發過程中保持清晰的程式架構。


上一篇
DAY 10: 物件導向程式開發——打造高效的 Python 程式架構
下一篇
DAY 12: 智能錯誤捕捉——深度掌握 Python 例外處理
系列文
Python探索之旅:從基礎到實踐30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言