當我們的程式逐漸變得龐大且複雜時,將程式分割成多個模組來管理就變得至關重要。模組化不僅有助於分工合作,還可以提升程式的可讀性、可維護性和重用性。今天,我們將學習如何打造自己的模組,並應用在一個較大型的專案中,讓程式碼更加組織化和有條理。
模組化開發指的是將一個大型程式拆解成多個相對獨立的部分,每個部分稱為「模組」。每個模組專注於處理特定的功能,並可以在需要時進行呼叫。這樣做不僅讓程式碼更容易管理,也可以重用已有的模組,減少重複撰寫相似的程式碼。
在 Python 中,模組化開發很容易實現。我們只需將類別或函數放置在一個單獨的檔案中,並透過 import
語法將它們引入其他檔案進行使用。
我們將透過一個專案來展示如何將程式分割成多個模組並進行調用。假設我們正在開發一個小型的庫存管理系統,這個系統需要處理「產品」和「訂單」兩個核心模組。
專案架構:
project/
│
├── product.py # 負責處理產品的模組
├── order.py # 負責處理訂單的模組
├── main.py # 主程式,負責整合並執行模組
└── utils.py # 工具模組,處理通用的功能
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}"
在 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)}")
在這裡,我們成功地透過多個模組來管理產品、訂單和工具函數,並在主程式中將它們整合在一起進行調用。這種模組化的結構不僅提升了程式的可讀性,還可以輕鬆擴展系統功能。
模組化開發 具有以下優點:
透過模組化開發,我們可以有效地管理大型專案,確保程式的可維護性和可讀性。今天的內容展示了如何分割程式成多個模組,並透過匯入這些模組來整合功能。隨著專案變得越來越複雜,模組化會是程式設計中的重要基石,讓我們能夠在開發過程中保持清晰的程式架構。