模組的概念:
在計算機程式開發過程中,隨著程式程式碼越來越多,在一個檔案裡程式碼就會越來越長,不利於維護。
為了編寫可維護的程式碼,我們把很多函式分組,分別放到不同的檔案裡,這樣每個檔案包含的程式碼就相對較少。
一個 .py檔案就稱為一個模組(module)
好處:
大大提高了程式碼的可維護性;
程式碼的重用性
程式碼的儲存性
模組種類:
python標準庫
第三方模組
應用程式自定義模組
模組匯入方法:
1:improt語句
2:from….improt…,…語句
3:from….improt * 語句
模組搜尋路徑:
python直譯器在啟動時會自動載入一些模組,可以使用 sys.modules 檢視
在第一次匯入某個模組時,會先檢查該模組是否已經被載入到記憶體中,如果有則直接引用。如果沒有,直譯器則會查詢同名的內建模組,如果還沒有找到就從sys.path給出的目錄列表中一次尋找模組檔案。
順序是:記憶體中已經載入的模組–>內建模組–>sys.path路徑中包含的模組
包:
包是一種通過使用 ‘.模組名’ 來組織python模組名稱空間的方式。
1,無論是import形式還是from…import
形式,凡是在匯入語句中遇到帶點的,都要在第一次時間提高警覺:這是關於包才有的匯入語法。
2,包是目錄級的(資料夾級),檔案是用來用來組成py檔案
(包的本質就是一個包含
__init__.py 檔案的目錄)
3:import匯入檔案時,產生名稱空間中的名字來源於檔案,import包,產生的名稱空間的名字同樣來源於檔案,即包下的
__init__.py,匯入包本質就是在匯入該檔案
強調:
1,在python3中,即使包下沒有__init__.py檔案,import包仍然不會報錯,而在python2中,包下一定要有該檔案,否則import包會報錯。
2,建立包的目的不是為了執行,而是被匯入使用,記住,包只是模組的一種形式而已,包即模組