Python 模組與套件(Modules & Packages)入門 | Python

隨著程式碼規模成長,將所有程式碼放在同一個檔案中會變得難以管理。Python模組(Modules)套件(Packages) 系統讓你能將程式碼分割成獨立的檔案,提升可讀性與可重用性。

什麼是模組?

Python 中,每一個 .py 檔案就是一個模組(Module)。模組可以包含函式、類別和變數。Python 內建了許多實用的標準庫模組:

import math

print(math.pi)        # 輸出:3.141592653589793
print(math.sqrt(16))  # 輸出:4.0

import 的各種語法

Python 提供了多種匯入方式:

# 匯入整個模組
import math
print(math.ceil(4.3))  # 輸出:5

# 從模組中匯入特定函式
from math import sqrt, pi
print(sqrt(25))  # 輸出:5.0

# 使用別名(alias)
import math as m
print(m.floor(4.7))  # 輸出:4

from math import sqrt as square_root
print(square_root(9))  # 輸出:3.0

建議避免使用 from math import *,因為這會將所有名稱匯入當前命名空間(Namespace),容易造成名稱衝突。

建立自己的模組

建立模組非常簡單,只需要寫一個 .py 檔案:

# myutils.py — 自訂模組
def greet(name):
    return f"你好,{name}!"

def add(a, b):
    return a + b
# main.py — 使用自訂模組
import myutils

print(myutils.greet("Alice"))  # 輸出:你好,Alice!
print(myutils.add(3, 5))       # 輸出:8

__name__ 變數的用途

每個模組都有 __name__ 變數。直接執行時值為 "__main__",被匯入時則是模組名稱:

# myutils.py
def greet(name):
    return f"你好,{name}!"

if __name__ == "__main__":
    # 只在直接執行此檔案時才執行
    print(greet("測試"))  # 輸出:你好,測試!

這個模式讓你的模組既可以被匯入使用,也可以獨立執行測試。

套件(Packages)

套件(Package)是一個包含 __init__.py 檔案的目錄,用來組織多個相關模組:

mypackage/
├── __init__.py      # 套件初始化檔案
├── math_utils.py
└── string_utils.py
from mypackage import math_utils
from mypackage.string_utils import capitalize_words

使用 pip 安裝第三方套件

pip(Package Installer for Python)可以安裝第三方套件:

pip install requests          # 安裝套件
pip install requests==2.31.0  # 安裝指定版本
pip list                      # 查看已安裝的套件
pip uninstall requests        # 解除安裝
import requests

response = requests.get("https://api.github.com")
print(response.status_code)  # 輸出:200

常用標準庫模組

模組用途
os作業系統互動
jsonJSON 資料處理
datetime日期與時間處理
random亂數生成
pathlib現代化路徑操作

總結

模組與套件是 Python 程式碼組織的基石。了解 import 語法、善用 if __name__ == "__main__" 模式、以及使用 pip 管理第三方套件,將大幅提升你的開發效率。希望這篇文章能幫助你掌握模組系統的核心觀念。

如果你想複習函式的基礎知識,請參考 Python 函數(Functions)入門指南

關於檔案操作的詳細用法,請閱讀 Python 檔案讀寫(File I/O)完整教學