第10 7節 Python包和子包的定義步驟

2021-09-26 01:27:16 字數 2356 閱讀 5119

一、 包的定義步驟

按照包名建立或使用乙個已有目錄,目錄名就是包名,必須注意包的目錄必須位於python載入模組的搜尋路徑中(具體請參考《第10.1節 python的模組及模組匯入》關於模組匯入的注意事項);

在該目錄內新增乙個__init__.py 檔案;

往包內新增模組檔案或子包;

編輯__init__.py檔案,用於進行包初始化。

子包的定義與包類似,唯一區別就是子包不是目錄必須位於python載入模組的搜尋路徑中,而是子包目錄必須位於其上層包所在的目錄內。

二、 案例

我們來規劃乙個商品**查詢的目錄結構:

老猿將這個包存放在c:\pythonsrc這個目錄下,且c:\pythonsrc這個目錄在python的搜尋目錄中,其檔案目錄結構如下:

子包dataaccess的目錄檔案資訊如下:

三、 案例說明

上述截圖中可以看到:

1、 在包goodspricequery和子包dataaccess下,都有__init__.py檔案;

2、 子包dataaccess是包goodspricequery對應目錄的子目錄。

四、 本規劃的包的幾個源**

包goodspricequery的__init__.py檔案

'''package goodspricequery is a example of module and package,inculding:

1.subpackage:dataacess

2.module:mainwin

'''print('start loading packeg:goodspricequery ...')

goodspricequeryloaded=true

dataaccessloaded=false

input('package goodspricequery loaded!press enter to exit.')

子包dataaccess的__init__.py檔案

'''package dataaccess is a subpackage of package goodspricequery,inculding:

1.module:dbaccess

2.module:goodstype

3.module:goodsprice

'''print('start loading dataaccess package ...')

dataaccessloaded=true

dbaccessloaded=false

goodstypeloaded=false

print('package dataaccess loaded!')

dbaccess.py檔案

print("module:dbaccess start load...")

def dbaccess():print("i'm dbaccess")

print("module:dbaccess loaded.")

mainwin.py檔案

print("module:mainwin start load...")

def mainwin():print("i'm mainwin")

print("module:mainwin loaded.")

goodstype.py檔案

print("module:goodstype start load...")

goodstypelist=

def goodstype():print("i'm goodstype")

print("module:goodstype loaded.")

goodsprice.py檔案

print("module:goodsprice start load...")

goodspricedict=

def goodsprice():print("i'm goodsprice")

print("module:goodsprice loaded.")

第10 6節 Python包的概念

一 引言 在 第10.2節 python的模組及模組匯入 介紹了模組的概念及匯入的幾個關鍵點,python中的模組是乙個單個的py檔案,當我們開發的專案或功能集由多個檔案構成時,我們需要將這些檔案打包,這樣在外部引用時這些功能集的功能時,這些檔案作為乙個整體來進行管理。二 概念 在python中,乙...

30 python匯入包和子包

我們先建立乙個包,所謂的包就是建立乙個目錄,裡面有乙個 init py檔案。我們在common目錄下建立乙個mypack的目錄,在該目錄裡面建立下列3個.py檔案 mypack init py print mypack init def init print mypack init function...

python 模組和包 python模組和包

一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...