請注意,這樣做不是一個好主意。它很混亂,容易出錯,並且通常完全沒有必要。python import忽略本地包
但對於參數的緣故,說你有一個本地包具有相同的名稱作爲全球包裝:
module/
__init__.py
os.py
thisfile.py
內thisfile.py
,你可以明確指定你想導入地方版本的使用下面的一個os.py
:
from . import os
from .os import foo
但事實上,與Python 2.x中,本地封裝分辨率爲默認值。只需一個簡單的import os
將加載本地os.py
而不是系統包。
那麼我怎麼在thisfile.py
裏導入系統級的os
包而不是本地定義的替代方案呢?
雖然有方法可以解決這個問題,但正如mata的答案和[PEP 328](http://www.python.org/dev/peps/pep-0328/)所解釋的那樣,給出一個真的不是個好主意您的模塊與stdlib模塊名稱相同。即使你可以避免混淆翻譯,你仍然會混淆你的代碼中的每一個讀者。 – abarnert
@abarnert同意。現在看到問題的前8個單詞。 – tylerl
我只是指出_why_這不是一個好主意,因爲我認爲這個評論對未來的讀者來說是有用的,他們只是「忽略這是否明智......」,並且認爲他們應該實際上這樣做而不是簡單。 – abarnert