模組的匯入與使用
模組的基本概念
在 Python 中,模組(Module)是一個以 .py
結尾的文件,裡面包含了 Python 的對象定義(如函數、類、變數)和 Python 語句。通過使用模組,我們可以將相關的代碼組織在一起,實現邏輯上的分離,從而使代碼更具結構性、可讀性和可維護性。
模組的作用
- 代碼重用:模組允許我們將常用的代碼封裝起來,在不同的程式中重複使用,避免代碼的重複編寫。
- 邏輯組織:通過模組,我們可以將相關功能的代碼組織在一起,使程式結構更加清晰。
- 命名空間的分離:模組為不同的代碼提供了單獨的命名空間,避免了命名衝突。
模組例子
以下是一個簡單的模組 support.py
的範例:
# support.py 模組 def print_func(par): print("Hello:", par) return
這個模組定義了一個函數 print_func()
,它接受一個參數並打印一個問候語。
模組的匯入
要使用模組中的函數、類或變數,我們需要使用 import
語句來匯入模組。匯入模組的基本語法如下:
import module1[, module2[,... moduleN]]
例如,匯入 Python 標準庫中的 math
模組:
import math
匯入模組後,可以通過 模組名.函數名
的方式來調用模組中的函數:
result = math.sqrt(16) print(result) # 輸出結果為 4.0
模組的搜索路徑
當你匯入一個模組時,Python 會按照一定的順序來搜索這個模組的位置:
- 當前目錄:首先,Python 會在當前執行的腳本所在目錄中搜索模組。
- PYTHONPATH 環境變量:如果在當前目錄中找不到模組,Python 會搜索環境變量
PYTHONPATH
所指示的目錄。 - 系統預設模組目錄:最後,Python 會搜索系統的預設模組目錄,這通常包含了 Python 標準庫。
可以通過 sys.path
來查看模組的搜索路徑:
import sys print(sys.path)
from...import
語句
from...import
語句允許你從模組中匯入特定的函數、類或變數到當前的命名空間中,這樣你就不需要每次使用時都加上模組名。語法如下:
from modname import name1[, name2[, ... nameN]]
例如,匯入 math
模組中的 sqrt
函數:
from math import sqrt print(sqrt(16)) # 輸出結果為 4.0
from...import *
語句
可以使用 from modname import *
語句來匯入模組中的所有內容到當前命名空間中,但這種做法應謹慎使用,因為它可能導致命名衝突,覆蓋已有的變數或函數。
模組的重載
在 Python 中,模組的頂層代碼只會在首次匯入時執行一次。如果需要重新執行模組的代碼,可以使用 importlib.reload()
函數來重載模組。這在你修改了模組的代碼後,希望重新執行修改後的代碼時非常有用。
import importlib import support # 首次匯入模組 importlib.reload(support) # 重載模組