1. 程式人生 > 其它 >16、模組優先順序和包

16、模組優先順序和包

一、迴圈匯入問題

解決方案:
方案一:匯入語句放到最後,保證在匯入時,所有名字都已經載入過
方案二:匯入語句放到函式中,只有在呼叫函式時才會執行其內部程式碼

二、 搜尋模組的路徑與優先順序

模組其實分為四個通用類別,分別是:
1、使用純Python程式碼編寫的py檔案
2、包含一系列模組的包
3、使用C編寫並連結到Python直譯器中的內建模組
4、使用C或C++編譯的擴充套件模組

在匯入一個模組時,如果該模組已載入到記憶體中,則直接引用,否則會優先查詢內建模組,然後按照從左到右的順序依次檢索sys.path中定義的路徑,直到找模組對應的檔案為止,否則丟擲異常。sys.path也被稱為模組的搜尋路徑,它是一個列表型別

重要結論:
如果被匯入的模組是在被執行程式所在的資料夾下,那麼無需處理環境變數,以執行程式所在的資料夾為起始點進行。

強調:
1、匯入語句中的點代表的是路徑分割符
2、使用語句中的點代表的是向某一個名稱空間要名字

三、軟體開發的目錄規範

bin:放執行程式
conf:放配置檔案,一些定製化的東西 日誌等
core:放核心程式碼,一些被匯入的檔案功能
lib:自定義自己的模組(庫)
logs:存放日誌
db:放資料,登入密碼等
readme:說明手冊
import time
time.strftime("%Y-%m-%d %H-%M-%S")
年月日 時分秒