使用模組可以避免函式名和變數名引發的衝突,那麼如果模組名重複怎麼辦?在python中,提出了包的概念(package)的概念,包是乙個分層次的目錄結構,它將一組功能相近的模組組織在乙個目錄下,這樣既起到了規範**的作用,又能避免模組重名引發的衝突。
說明:包簡單的理』解就是[資料夾],只不過是在該資料夾下必須存在的乙個名稱為「__init__.py」的檔案。
一、python程式的包結構
實際專案開發過程中,會建立多個包用於存放不同型別的檔案。例如,開發乙個**時可以建立。如圖所示的包結構
說明:先建立了乙個名為shop的專案,然後再該包下面又建立了admin、home、templates 3個包,和乙個 manage的檔案,最後又在每個包中,又建立了相應的模組
1、建立和使用包
建立包實際上就是建立乙個資料夾,並且在該資料夾下建立乙個名為__init__.py的python檔案,在這個檔案中,可以不編寫任何**,也可以編寫一些python**,在這個檔案中寫的**,在匯入包時會自動執行。
備註:__init__.py檔案是乙個模組檔案,模組名為對應的包名,例如,在setings包中建立的__init__.py檔案,對應的模組名稱就叫seting。
2、使用包
建立包以後,就可以在包中間建立相應的模組,在使用import語句從包中載入模組,從包中載入模組通常有3種模式。
(1)通過import+完整的包名+模組名形式載入指定模組,例如有乙個名稱為seting的包,該包下面有個名稱為size的模組,要匯入模組,可以使用一下**。
import seting.size
通過該方式匯入模組後,在需要使用完整的名稱,例如在size模組下有2個變數
width = 800, height = 600
這時,在通過import+完整的包名+模組名形式匯入size模組後,在呼叫width和height變數時,就需要在變數名前加入「setting.size」字首。**如下
settings.size.width
settings.size.height
python中的包 python中的包
1.python中的包 包將有聯絡的模組組織在一起,有效避免模組名稱衝突問題,讓應用組織結構更加清晰 假定我們的包的例子有如下的目錄結構 phone init py common util.py voicedta init py pots.py isdn.py fax init py g3.py m...
python中閉包 python中的閉包
一 定義 如果在乙個內部函式裡,對在外部作用域 但不是在全域性作用域 的變數進行引用,那麼內部函式就被認為是閉包 closure 這個定義是相對直白的,閉包有三個條件 1.函式巢狀 2,內部函式呼叫外部函式的變數 3.返回內部函式 defa a defb b s a breturnsreturnb ...
python導包 Python中包的匯入
15 june 2015 當你從python直譯器退出後再重新進入,之前所寫的 包括變數 函式都已經不存在了,如果你想週期性的執行這些功能但是並不想每次都將這些 重新輸入一遍,你可以將這些 儲存成檔案在本地進行儲存 也就是指令碼 當你寫的程式規模越來越大,維護起來越發吃力,你或許會想把它分割為不同功...