可能有人請闡明此行爲的一些光:Python的進口細微差別Python解釋器
from os import path # success
type(path) # <class 'module'>
from path import * # complains that no module called 'path' exists
type(os.path) # complains that the name 'os' is not defined, yet:
from os.path import * # works just fine
。負面的問題,我不知道什麼是允許的語句,如機制「從操作系統導入路徑'工作,而仍然是不確定的? os在執行from ... import時不會被執行,並且它應該被「稱爲」模塊?我是否正確地說,保持已知名稱不變是一種慣例,旨在防止名稱空間的「污染」與未直接導入的符號(如'import os'中所示)?
謝謝。我似乎在做出一些錯誤的假設,尤其是那些已經導入的名稱將被涉及它的後續導入所「識別」,而不是簡單地認爲任何導入實際上只處理文件系統和文件系統。標準的Python文檔(我熟悉的)應該已經清除了這種「進口鏈」,但由於某種原因,我的思想堅持要建立這種關係。 –
爲了徹底,當'from x import y'運行時,x _ will_將被執行(儘管它不會被導入!)。參考:http://stackoverflow.com/questions/10993156/python-importing-module。 –