Python包及其定義和參照詳解

2020-07-16 10:04:44
對於一個需要實際應用的模組而言,往往會具有很多程式單元,包括變數、函數和類等,如果將整個模組的所有內容都定義在同一個 Python 原始檔中,這個檔案將會變得非常龐大,顯然並不利於模組化開發。

什麼是包

為了更好地管理多個模組原始檔,Python 提供了包的概念。那麼問題來了,什麼是包呢?

從物理上看,包就是一個資料夾,在該資料夾下包含了一個 __init__.py 檔案,該資料夾可用於包含多個模組原始檔;從邏輯上看,包的本質依然是模組。

根據上面介紹可以得到一個推論,包的作用是包含多個模組,但包的本質依然是模組,因此包也可用於包含包。典型地,當我們為 Python 安裝了 numpy 模組之後,可以在 Python 安裝目錄的 Libsite-packages 目錄下找到一個 numpy 資料夾,它就是前面安裝的 numpy 模組(其實是一個包)。該資料夾的內容如圖 1 所示:


圖 1 numpy 模組(包)的檔案結構