2011-09-02 94 views
72

我找過了Python的multiprocessing模塊的代碼,它包含這一行:的什麼是。在Python中的導入語句是什麼意思?

from ._multiprocessing import win32, Connection, PipeConnection 

代替

from _multiprocessing import win32, Connection, PipeConnection 

的細微差別是_multiprocessing前的時期。那是什麼意思?爲什麼這個時期?

+2

它被稱爲相對導入:http://docs.python.org/tutorial/modules.html – Aillyn

+0

沒有'.',如果你有一個文件'_multiprocessing.py'出現在你的主腳本旁邊的某些不可理解的原因, 'multiprocessing'會中斷。使用'.',它可以確保獲得自己的模塊。 –

+2

有用的問題! –

回答

65

這對明確relative imports新的語法。這意味着從當前包中導入。

+7

什麼定義「當前包」是什麼? – fraxture

+2

它應該說*從導入包的位置*。它基本上意味着當前的名稱空間或軟件包目錄。 – Keith

+0

謝謝,我想我知道你的意思。爲了清楚起見,你介意提供一個例子嗎? – fraxture

16

在模塊名的點被用於相對模塊進口(見herehere,部分6.4.2)。

您可以使用一個以上的點,不是指CURENT包,但它的父(S)。這應該只在包中使用,在主模塊中應該總是使用絕對模塊名稱。