初學者指南:如何在 Python 中建立和匯入模組
更新日期: 2024 年 10 月 11 日
在學習 Python 的過程中,你可能會發現隨著程式碼的增多,將所有程式碼都寫在一個檔案中會變得越來越困難。
為了更好地組織程式碼,提高重用性和可維護性,Python 提供了模組(Module)的概念。
模組允許你將相關的函式、類別和變數封裝在一個獨立的檔案中,並在其他程式中輕鬆地匯入和使用。
本文將為新手詳細介紹如何在 Python 中建立和匯入模組。
什麼是模組?
模組是包含 Python 定義和語句的檔案,副檔名為 .py
。
模組可以包含函式、類別和變數,甚至可以包含可執行的程式碼。
使用模組的好處包括:
- 代碼重用:將常用的代碼放入模組,可在多個程式中匯入和使用。
- 組織性:使程式碼結構更清晰,更易於維護。
- 命名空間:避免命名衝突,模組為其內容提供了獨立的命名空間。
如何建立模組
建立模組非常簡單,只需將你的程式碼保存為一個 .py
檔案。
步驟:
- 建立一個新的 Python 檔案:使用文字編輯器或 IDE,創建一個新的檔案,命名為
my_module.py
。 - 編寫模組內容:在檔案中定義你需要的函式、類別或變數。
示例
# my_module.py
def greet(name):
"""傳入姓名,返回問候語。"""
return f"Hello, {name}!"
def add(a, b):
"""返回兩個數字的和。"""
return a + b
pi = 3.14159
如何匯入模組
有多種方式可以在其他程式中匯入和使用你創建的模組。
使用 import
語句
import my_module
# 使用模組中的函式和變數
message = my_module.greet("Alice")
print(message) # 輸出:Hello, Alice!
result = my_module.add(5, 3)
print(result) # 輸出:8
print(my_module.pi) # 輸出:3.14159
使用 from...import
語句
from my_module import greet, pi
# 直接使用匯入的函式和變數
print(greet("Bob")) # 輸出:Hello, Bob!
print(pi) # 輸出:3.14159
匯入所有內容(不推薦)
from my_module import *
# 使用模組中的所有函式和變數
print(greet("Charlie")) # 輸出:Hello, Charlie!
print(add(2, 4)) # 輸出:6
print(pi) # 輸出:3.14159
注意:使用 from module import *
會匯入模組中的所有公開成員,但可能導致命名衝突,降低程式的可讀性,通常不建議使用。
為模組或函式起別名
import my_module as mm
message = mm.greet("David")
print(message) # 輸出:Hello, David!
from my_module import add as addition
print(addition(10, 15)) # 輸出:25
模組的搜索路徑
當你匯入一個模組時,Python 解釋器會在以下位置按順序搜索:
- 當前目錄:執行程式所在的目錄。
PYTHONPATH
環境變數:如果有設定,則會搜索其中指定的路徑。- 標準庫路徑:Python 安裝目錄下的
lib
目錄。 - 第三方包目錄:如
site-packages
。
你可以通過以下方式查看 Python 的模組搜索路徑:
import sys
for path in sys.path:
print(path)
確保你的模組檔案 my_module.py
與你要匯入的程式在同一目錄下,或者將模組檔案所在的路徑添加到 sys.path
中。
在模組中測試程式碼
有時你可能希望在模組中包含一些測試程式碼,但又不希望這些程式碼在模組被匯入時執行。可以使用 if __name__ == "__main__":
來實現。
示例
# my_module.py
def greet(name):
return f"Hello, {name}!"
def add(a, b):
return a + b
pi = 3.14159
if __name__ == "__main__":
# 測試代碼,只在直接執行模組時運行
print(greet("Test"))
print(add(2, 3))
print(pi)
當你直接執行 my_module.py
時,__name__
會等於 "__main__"
,測試代碼會執行;但當模組被匯入時,測試代碼不會執行。
實際應用示例
建立一個簡單的計算模組
1. 創建模組檔案 calculator.py
# calculator.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
raise ValueError("除數不能為零")
return a / b
2. 在主程式中匯入並使用模組
# main.py
import calculator
num1 = float(input("請輸入第一個數字:"))
num2 = float(input("請輸入第二個數字:"))
print(f"{num1} + {num2} = {calculator.add(num1, num2)}")
print(f"{num1} - {num2} = {calculator.subtract(num1, num2)}")
print(f"{num1} * {num2} = {calculator.multiply(num1, num2)}")
try:
print(f"{num1} / {num2} = {calculator.divide(num1, num2)}")
except ValueError as e:
print(e)
運行結果:
請輸入第一個數字:10
請輸入第二個數字:5
10.0 + 5.0 = 15.0
10.0 - 5.0 = 5.0
10.0 * 5.0 = 50.0
10.0 / 5.0 = 2.0
小結
- 建立模組:將相關的程式碼保存在一個
.py
檔案中,即可創建一個模組。 - 匯入模組:使用
import 模組名
或from 模組名 import 成員
的方式匯入模組。 - 模組的搜索路徑:Python 會在當前目錄、
PYTHONPATH
、標準庫和第三方包目錄中搜索模組。 if __name__ == "__main__":
:可以在模組中添加測試程式碼,僅在直接執行模組時運行。
進一步學習
- 深入理解模組和套件:學習如何組織更大的項目,使用套件(含有
__init__.py
的目錄)來管理模組。 - 使用第三方模組:瞭解如何使用
pip
安裝和管理第三方模組和套件。 - 建立虛擬環境:學習如何使用虛擬環境(如
venv
)來隔離和管理項目的依賴。
結論
模組是 Python 中強大而靈活的功能,允許你將程式碼組織成更易於維護和重用的單元。
通過將函式、類別和變數封裝在模組中,你可以在不同的程式之間共享代碼,減少重複工作。
希望這篇文章能夠幫助你理解如何建立和匯入模組,並在實際開發中靈活運用。