課程內(nèi)容
Python入門課程NO77課 package是什么
package,即通常所說的包結(jié)構(gòu),是一種包裹模塊文件的目錄結(jié)構(gòu)。通俗地來進(jìn)行解釋,package是一個模塊倉庫。可以通俗的理解為一個目錄文件夾就是一個package,比如下圖中的Lib和pip都是package。
package也是對象,可以理解為一種命名空間對象。Python中的類有一個特殊的__init__方法,用來對對象進(jìn)行初始化。在package中可以添加一個__init__.py,在__init__.py對package進(jìn)行初始化,為package定義屬性和方法。
在企業(yè)開發(fā)中,通常使用三層結(jié)構(gòu)來組織項目結(jié)構(gòu)。三層架構(gòu)是按照按項目的功能來劃分的三層邏輯結(jié)構(gòu):表示層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。表示層的功能是接收用戶輸入的數(shù)據(jù),以及進(jìn)行數(shù)據(jù)顯示。業(yè)務(wù)邏輯層,對應(yīng)于具體的業(yè)務(wù)規(guī)則,數(shù)據(jù)訪問層則將數(shù)據(jù)的讀寫操作封裝到一個package。
使用分層架構(gòu)使得項目的邏輯結(jié)構(gòu)變得清晰可讀,分工明確,開發(fā)人員只需關(guān)注整個結(jié)構(gòu)中的某一層,降低了維護(hù)成本。我們現(xiàn)在使用Python中的package來組織三層架構(gòu),使用package組織三層架構(gòu)的主要形式:
其中main.py是整個應(yīng)用程序的入口,uil指的是數(shù)據(jù)表示層,bll指的是業(yè)務(wù)邏輯層,而dal代表數(shù)據(jù)訪問層。三層結(jié)構(gòu)并不是單純將每個package進(jìn)行命名,按這種邏輯形式進(jìn)行項目的組織,程序員在實際的設(shè)計過程中,應(yīng)遵循模塊化設(shè)計原則,同時多考慮代碼的復(fù)用性以及減少層與層之間的相互依賴。

- 上一篇
Python入門課程NO76課 模塊的導(dǎo)入機制
上節(jié)課講到import可以進(jìn)行模塊的導(dǎo)入操作,通過improt導(dǎo)入后Python解釋器會自動將導(dǎo)入的模塊名寫入到內(nèi)置模塊sys的modules屬性中。 sys.modules是一個字典對象,鍵名為模塊名。待更新...
- 下一篇
Python入門課程NO78課 模塊的絕對導(dǎo)入和相對導(dǎo)入
模塊的導(dǎo)入分兩種,絕對導(dǎo)入和相對導(dǎo)入。下面分別來講解:絕對導(dǎo)入:模塊的絕對導(dǎo)入是指從當(dāng)前頂層的package位置處開始導(dǎo)入。這里涉及到一個概念:頂層package。在上文的目錄結(jié)構(gòu)中,main.py與utils處于同一目錄,utils是最頂層的包,utils下面的arithmetic是子級的包。在mai