python中支援相對匯入語法,即可以相對於某乙個package進行匯入,具體語法如下:
#匯入"./dir2/spam.py", .表示當前目錄
from .dir2 import
spam
#匯入"./../dir3/spam.py", .表示當前目錄, ..表示上一級目錄
from ..dir3 import spam
要使用相對匯入語法,必須滿足以下3個條件:
1 該語法只能在package中使用(即使用該語法的檔案位於可以位於乙個普通的package中《包含__init__.py>,也可以位於乙個namespace package中),否則匯入失敗;
2 只有from有相對匯入語法,import沒有
3 要使用相對匯入語法,目錄前面必須有.或者..,否則,對於python 2.x和python 3.x來說行為還有少許差別,下面提到。
絕對匯入與相對匯入
所謂絕對匯入,就是只在sys.path的路徑進行搜尋匯入的package或者module檔案;
所謂相對匯入,就是只在當前package下進行搜尋匯入的package或者module檔案;
需要記住的是,只要使用了相對匯入的語法,無論是在python 2.x,還是python 3.x中,都只會在當前目錄進行搜尋。如果不使用相對匯入語法,那麼:
1 對於python 3.x來說,import和from語法只進行絕對匯入的搜尋;
2 對於python 2.x來說,import和from語法先進行相對匯入的搜尋,如果沒有搜尋到,再進行絕對匯入的搜尋
那如果python 2.x也想達到和python 3.x一樣的效果,即如果使用了相對匯入,就只在當前package下進行搜尋,否則,就使用絕對匯入的搜尋,該怎麼辦呢?如果真要這樣,可以在module檔案的第一行,加入如下語句:
from__future__
import absolute_import
那麼,對於python 2.x,無論是import還是ffrom,只要沒使用相對匯入,都只進行絕對匯入的搜尋。
Python中的相對匯入語法
python中支援相對匯入語法,即可以相對於某乙個package進行匯入,具體語法如下 匯入 dir2 spam.py 表示當前目錄 from dir2 import spam 匯入 dir3 spam.py 表示當前目錄,表示上一級目錄 from dir3 import spam 要使用相對匯入語...
Python中的絕對匯入和相對匯入
如果你做過有多個檔案的python專案,那麼你一定用過import語句。即使是對於有多個專案的python支持者來說,import也會讓人困惑!你可能正閱讀本文,因為希望更深入地了解python中的匯入,尤其是絕對和相對匯入。在本教程中,你將了解兩者之間的差異,以及它們的利弊。我們立即開始吧!你需要...
python 相對匯入
參考 python2 預設相對匯入 python3 預設絕對匯入 python3 相對匯入只有兩個方式 1.在上層有乙個檔案main.py,可以直接執行main.py main.py 裡 from mypackage.myothermodule imoprt 2.或者在包的外層執行 m python...