可能有人请阐明此行为的一些光: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。 –