python中的自定義模組,就不是python自帶的模組,而是通過自己來建立出來的。
在電腦程式的開發過程中,隨著程式**越寫越多,在乙個檔案裡**就會越來越長,越來越不容易維護。
為了編寫可維護的**,我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的**就相對較少,很多程式語言都採用這種組織**的方式。在python中,乙個.py檔案就稱之為乙個模組(module),如乙個xyz.py的檔案就是乙個名字叫xyz的模組。
使用模組的意義
提高了**的可維護性。其次,編寫**不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用。還可以避免函式名和變數名衝突。相同名字的函式和變數完全可以分別存在不同的模組中,因此,我們自己在編寫模組時,不必考慮名字會與其他模組衝突。
使用模組可以實現函式的跨檔案呼叫。
python自定義模組及其使用的簡單例子
建立名為mym.py檔案,作為自定義模組檔案,內容如下:
def add(a, b):
return a + b
def sub(a, b):
return a - b
建立使用 import mym的名為的testa.py測試檔案,內容如下:
import mym
print("add(1, 2)的結果", mym.add(1, 2))
print("sub(2, 3)的結果:", mym.sub(2, 3))
將testa.py檔案和mym.py檔案儲存在同一目錄(資料夾)中,執行testa.py結果如下圖:
建立使用from mym import add的名為的testb.py測試檔案,內容如下:
from mym import add
print("add(1, 2): 的結果",add(1, 2))
將testb.py檔案和hello.py檔案儲存在同一目錄(資料夾)中,執行testb.py結果如下圖:
import語句語法
格式一:
import 模組名 [as 別名]
說明:1)將整個模組匯入。2)[as 別名]部分可無,取別名簡化引用。 3)使用匯入模組中的成員的格式:模組名[或別名]. 成員
成員包括屬性(變數)或函式。
格式二:
from 模組名 import成員名或*
說明:1)匯入模組中的某個成員,*代表所有成員。
若匯入包中模組,將上面語法中的模組名改為 包名.模組名
提示:import ***和from *** import yyy,兩者的區別在於:
import ***,需要通過***.yyy的方式使用匯入模組中的變數、函式、類等。
from *** import yyy,可以直接以yyy呼叫。
如果不同的人編寫的模組名相同怎麼辦?
為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱為包(package)。參見下圖:
引入了包以後,只要頂層的包名不衝突,同名的模組就不衝突,如上圖中兩個aa.py模組不會衝突。注意,每乙個包目錄下面都會有乙個__init__.py的檔案(init前後有兩個下劃線),這個檔案是必須存在的,否則,python就把這個目錄當成普通目錄,而不是乙個包。__init__.py可以是空檔案,也可以有**。當匯入包時,python會自動執行 "__init__.py" 裡的**,可作包和模組的初始化。
自己建立模組時要注意命名,不能和python自帶的模組名稱衝突。例如,系統自帶了sys模組,自己的模組就不可命名為sys.py,否則將無法匯入系統自帶的sys模組。
簡單而言,模組(module)是指py檔案,包(package)是指目錄(含有__init__.py檔案的目錄)。i
import語句補充明:引入不同路徑下的模組
可參見
python模組 python自定義模組
1.import 模組名 匯入模組中的所有內容 引入多個用逗號分隔 import random,time 2.from 模組名 import 函式名1,函式名2.匯入部分模組 匯入部分的話直接使用 3.from 模組名 import 匯入所有,有約束 需要在 init py檔案中新增屬性 all 函...
python 自定義模組
python 的標準安裝包括了一組模組,稱之為標準庫 standard library 在專案開發,程式設計師會考慮 的可擴充套件性和 的可重用性,使用模組的好處,就是考慮使用了 的可重用性。模組 任何python程式都可以作為模組匯入,例如 編寫乙個hello.py檔案,包名 com.easymo...
python自定義模組
1 匯入自定義模組 1.1 匯入檔案與當前檔案在同一目錄 1.2 匯入檔案在同級目錄下某資料夾folder下 1.3 相對路徑匯入 2 詳解python中的from.import絕對匯入語句 3 作為指令碼來執行程式 4 github上模組位址 5 查詢python安裝路徑 1 匯入自定義模組 1....