課程內(nèi)容
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是子級的包。在main.py中需要導(dǎo)入arithmetic包中的add模塊時(shí),則當(dāng)前頂層的package是utils,使用絕對導(dǎo)入的語法為:from utils.arithmetic import add。表示從utils包下面的arithmetic包中導(dǎo)出add模塊。而在calc_max.py中需要導(dǎo)入arithmetic包中的add模塊時(shí),當(dāng)前頂層的package就是arithmetic, 使用絕對導(dǎo)入的語法為:from arithmetic import add。
相對導(dǎo)入:
模塊的相對導(dǎo)入是指在package內(nèi)部,相對于當(dāng)前位置進(jìn)行導(dǎo)入。在相對導(dǎo)入語法中需要使用前綴點(diǎn)號.。單個(gè)點(diǎn)號.表示當(dāng)前目錄,兩個(gè)點(diǎn)號..表示父目錄,三個(gè)點(diǎn)號...表示父目錄的父目錄,以此類推。點(diǎn)號可以加在名稱前面,例如.A表示當(dāng)前目錄中的A目錄或A模塊,..B表示父目錄中的B目錄或B模塊。
因此,在上圖中,在calc_max.py中導(dǎo)入arithmetic中的add模塊的寫法應(yīng)該是from .arithmetic import add,表示在當(dāng)前目錄中的arithmetic包中導(dǎo)出add模塊。
值得注意的是,在進(jìn)行相對導(dǎo)入時(shí)不能超出當(dāng)前package的頂層作用域,否則會(huì)拋出ValueError的異常,指示超出了頂層package的作用域。
Python中的默認(rèn)導(dǎo)入方式為絕對導(dǎo)入,因?yàn)槠渚浞ㄇ逦苯樱髽I(yè)開發(fā)中也通常將絕對導(dǎo)入作為首選

- 上一篇
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
- 下一篇
Python入門課程N(yùn)O79課 Python常用的標(biāo)準(zhǔn)庫
為了開發(fā)者使用方便,python內(nèi)置了一些模塊。這些叫python的常用做標(biāo)準(zhǔn)庫。其中包括系統(tǒng)相關(guān)模塊,時(shí)間處理模塊,隨機(jī)數(shù)模塊,命令行模塊。使用這些標(biāo)準(zhǔn)模塊時(shí),無需安裝,直接使用import語句進(jìn)行導(dǎo)入。同學(xué)們可以簡單記憶一下,在需要使用的時(shí)候知道有他的存在,并直接導(dǎo)入使