import方法引入模組詳解

pythontab發表於2012-12-23
在python用import或者from...import或者from...import...as...來匯入相應的模組,作用和使用方法與C語言的include標頭檔案類似。其實就是引入某些成熟的函式庫和成熟的方法,避免重複造輪子,提高開發速度。
 
python的import方法可以引入系統的模組,也可以引入我們自己寫好的共用模組,這點和php非常相似,但是它們的具體細節還不是很一樣。因為php是在引入的時候指明引入檔案的具體路徑,而python中不能夠寫檔案路徑進行引入。
 
下面總結一下import的幾種情況:
 
python包含子目錄中的模組方法比較簡單,關鍵是能夠在sys.path裡面找到通向模組檔案的路徑。
 
下面將具體介紹幾種常用情況:
(1)主程式與模組程式在同一目錄下:
如下面程式結構:
`-- src
    |-- mod1.py
    `-- test1.py
    若在程式test1.py中匯入模組mod1, 則直接使用import mod1或from mod1 import *;
 
(2)主程式所在目錄是模組所在目錄的父(或祖輩)目錄
如下面程式結構:
`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    `-- test1.py
    若在程式test1.py中匯入模組mod2, 需要在mod2資料夾中建立空檔案__init__.py檔案(也可以在該檔案中自定義輸出模組介面); 然後使用 from mod2.mod2 import * 或import mod2.mod2.
 
(3)主程式匯入上層目錄中模組或其他目錄(平級)下的模組
如下面程式結構:
`-- src
    |-- mod1.py
    |-- mod2
    |   `-- mod2.py
    |-- sub
    |   `-- test2.py
    `-- test1.py
    若在程式test2.py中匯入模組mod1和mod2。首先需要在mod2下建立__init__.py檔案(同(2)),src下不必建立該檔案。然後呼叫方式如下:
   下面程式執行方式均在程式檔案所在目錄下執行,如test2.py是在cd sub;之後執行python test2.py
而test1.py是在cd src;之後執行python test1.py; 不保證在src目錄下執行python sub/test2.py成功。
   import sys
   sys.path.append("..")
   import mod1
   import mod2.mod2
 

相關文章