Python 模組是組織的基本單位,有兩種形式:程式碼模組和包模組。程式碼模組由可執行的 Python 程式碼組成,而套件模組包含包含其他模組的目錄。
Python 為模組指派唯一的識別符,稱為模組名稱和檔案名稱。通常,模組由 Python 程式碼中的模組名稱和命令列中的檔案名稱來識別。 Python 使用 sys.path 變數將模組名稱無縫轉換為檔案名稱。
在 Python 2.4.1 中引入,-m 開關最初允許透過命令執行模組基於其模組名稱的行。這提供了指定檔案名稱的替代方法。在其初始迭代中,-m 僅支援頂級模組名稱。
PEP 338 擴充 -m 來處理更複雜的模組名稱表示,允許執行巢狀模組,例如 http.server。此外,它還要求評估所有父包 __init__.py 檔案。
最後的關鍵進步來自 PEP 366,賦予 -m 不僅支援絕對導入而且還支援顯式相對導入的能力。這是透過將 package 變數設定為給定模組名稱的父模組來實現的。
儘管 -m 功能強大,但其局限性在於它只能執行用 Python 編寫的模組(.py 檔案)。不支援 C 編譯程式碼模組。
透過 Import 語句執行模組:
透過命令列執行模組檔名:
透過命令列使用模組名稱(-m)執行模組:
-m 開關是從命令列執行 Python 模組的強大工具。它能夠將模組名轉換為檔案名稱、執行本機套件以及支援相對導入,為管理 Python 程式碼提供了一種方便且通用的方法。儘管它限制了執行基於 Python 的模組,但 -m 對 Python 開發人員來說仍然是無價的資產。
以上是Python 的 `-m` 開關的目的是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!