WeHelp
掌握基礎的 Python 觀念、語法、和程式運作流程,以及物件導向程式的入門技巧。
  1. Python 快速開始
  2. 資料、資料型態
  3. 變數的使用
  4. 運算符號
  5. IF 條件判斷
  6. Match 條件判斷
  7. While 迴圈
  8. For 迴圈
  9. 函式基礎
  10. 函式進階
  11. 類別、物件基礎
  12. 類別的繼承
  13. 模組與封包
  14. 例外處理
模組與封包
# Python 模組與封包簡介 ## 1. 什麼是模組(Module)? Python 模組就是一個副檔名為 `.py` 的程式檔案。 模組可以包含: - 變數 - 函式 - 類別 - 可執行程式碼 將程式拆成多個模組,可以讓程式: - 更容易維護 - 重複使用程式碼 - 避免所有程式集中在同一個檔案 - 方便多人共同開發 例如: ```text math_tools.py ``` 就是一個名為 `math_tools` 的模組。 --- ## 2. 建立程式檔案模組 假設建立一個 `tools.py`: ```python # tools.py def add(a, b): return a + b def greet(name): return f"你好,{name}!" ``` 這個檔案就是一個模組,其中定義了 `add()` 和 `greet()` 兩個函式。 --- ## 3. 在主程式中載入模組 假設主程式為 `main.py`,且它和 `tools.py` 位於同一個資料夾: ```text project/ ├── main.py └── tools.py ``` ### 方法一:使用 `import 模組名稱` ```python # main.py import tools result = tools.add(3, 5) print(result) print(tools.greet("小明")) ``` 執行結果: ```text 8 你好,小明! ``` 使用模組中的函式時,需要加上: ```python 模組名稱.函式名稱 ``` --- ### 方法二:使用 `from ... import ...` ```python # main.py from tools import add, greet print(add(3, 5)) print(greet("小明")) ``` 這種寫法可以直接使用函式名稱,不需要加上模組名稱。 也可以使用星號載入所有內容: ```python from tools import * ``` 但通常不建議這樣做,因為可能造成名稱衝突,且不容易知道函式來自哪個模組。 --- ### 方法三:為模組設定別名 ```python import tools as t print(t.add(10, 20)) ``` `tools` 被取別名為 `t`,之後可以使用 `t` 代替 `tools`。 --- ## 4. 什麼是封包(Package)? 封包是用來組織多個模組的資料夾。 一個封包通常是一個資料夾,裡面包含多個 `.py` 模組檔案。 例如: ```text project/ ├── main.py └── utilities/ ├── __init__.py ├── math_tools.py └── text_tools.py ``` 其中: - `utilities` 是封包 - `math_tools.py` 是模組 - `text_tools.py` 是模組 - `__init__.py` 用來表示這個資料夾是一個 Python 封包 在現代 Python 中,即使沒有 `__init__.py`,某些情況下也可以建立「命名空間封包」,但一般教學與實務上仍常放置 `__init__.py`,以明確表示這是封包。 --- ## 5. 使用封包中的模組 假設 `math_tools.py` 內容如下: ```python # utilities/math_tools.py def multiply(a, b): return a * b ``` 在 `main.py` 中可以這樣載入: ```python from utilities import math_tools print(math_tools.multiply(4, 6)) ``` 也可以直接載入函式: ```python from utilities.math_tools import multiply print(multiply(4, 6)) ``` 還可以使用別名: ```python from utilities.math_tools import multiply as mul print(mul(4, 6)) ``` --- ## 6. 封包和資料夾的對應關係 封包與資料夾的關係如下: ```text project/ ├── main.py └── utilities/ ├── __init__.py └── math_tools.py ``` 對應關係: | Python 概念 | 實際檔案或資料夾 | |---|---| | 封包 `utilities` | `utilities/` 資料夾 | | 模組 `math_tools` | `math_tools.py` | | 子模組完整名稱 | `utilities.math_tools` | | 主程式 | `main.py` | 因此: ```python from utilities.math_tools import multiply ``` 可以理解為: 1. 找到 `utilities` 資料夾 2. 找到其中的 `math_tools.py` 3. 從該模組載入 `multiply` --- ## 7. 完整簡單範例 資料夾結構: ```text my_project/ ├── main.py └── calculator/ ├── __init__.py └── basic.py ``` `calculator/basic.py`: ```python def add(a, b): return a + b def subtract(a, b): return a - b ``` `main.py`: ```python from calculator.basic import add, subtract x = 10 y = 3 print("加法:", add(x, y)) print("減法:", subtract(x, y)) ``` 執行 `main.py` 後: ```text 加法: 13 減法: 7 ``` 這個例子中: - `calculator` 是封包 - `basic.py` 是模組 - `add()` 與 `subtract()` 是模組中的函式 - `main.py` 是載入並使用它們的主程式 一般執行方式是在 `my_project` 資料夾中執行: ```bash python main.py ```
相關學習地圖、教學課程
Python 資料工程
從 0 開始,成為資料工程師的學習路徑。
Python 後端工程、資料庫
從 0 開始,成為後端工程師的學習路徑。