Python入門課程NO78課 模塊的絕對導入和相對導入
模塊的導入分兩種,絕對導入和相對導入。下面分別來講解:
絕對導入:
模塊的絕對導入是指從當前頂層的package位置處開始導入。這里涉及到一個概念:頂層package。
在上文的目錄結構中,main.py與utils處于同一目錄,utils是最頂層的包,utils下面的arithmetic是子級的包。在main.py中需要導入arithmetic包中的add模塊時,則當前頂層的package是utils,使用絕對導入的語法為:from utils.arithmetic import add。表示從utils包下面的arithmetic包中導出add模塊。而在calc_max.py中需要導入arithmetic包中的add模塊時,當前頂層的package就是arithmetic, 使用絕對導入的語法為:from arithmetic import add。
相對導入:
模塊的相對導入是指在package內部,相對于當前位置進行導入。在相對導入語法中需要使用前綴點號.。單個點號.表示當前目錄,兩個點號..表示父目錄,三個點號...表示父目錄的父目錄,以此類推。點號可以加在名稱前面,例如.A表示當前目錄中的A目錄或A模塊,..B表示父目錄中的B目錄或B模塊。
因此,在上圖中,在calc_max.py中導入arithmetic中的add模塊的寫法應該是from .arithmetic import add,表示在當前目錄中的arithmetic包中導出add模塊。
值得注意的是,在進行相對導入時不能超出當前package的頂層作用域,否則會拋出ValueError的異常,指示超出了頂層package的作用域。
Python中的默認導入方式為絕對導入,因為其句法清晰,直接,企業開發中也通常將絕對導入作為首選

- 上一篇
Python入門課程NO77課 package是什么
package,即通常所說的包結構,是一種包裹模塊文件的目錄結構。通俗地來進行解釋,package是一個模塊倉庫。可以通俗的理解為一個目錄文件夾就是一個package,比如下圖中的Lib和pip都是package。package也是對象,可以理解為一種命名空間對象。Python中的類有一個特殊的__init
- 下一篇
Python入門課程NO79課 Python常用的標準庫
為了開發者使用方便,python內置了一些模塊。這些叫python的常用做標準庫。其中包括系統相關模塊,時間處理模塊,隨機數模塊,命令行模塊。使用這些標準模塊時,無需安裝,直接使用import語句進行導入。同學們可以簡單記憶一下,在需要使用的時候知道有他的存在,并直接導入使