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

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