很抱歉提出这个可能很幼稚的问题。我试图寻找 doc 并做一些实验,但我想确保是这种情况:
如果,在文件 test.py 中,我有:
import module1
我在控制台中这样做:
import test
我不会在控制台中导入 module1。
如果我这样做:
from test import *
此外,module1 不会被导入控制台。
那是对的吗?谢谢!
import test
这只会将名称test
导入当前命名空间。test
' 命名空间中的任何内容都可以作为test.whatever
; 特别是,module1
可以作为test.module1
,尽管您不应该使用它。
from test import *
这会将不以下划线开头的所有内容从test
's 命名空间导入到当前命名空间中。由于module1
在test
's 命名空间中可用,因此确实会导入 name module1
。
你的实验可以很容易地从 shell 中进行:
╭─phillip@phillip-laptop ~ ‹ruby-1.9.3@global› ‹pandas›
╰─$ echo "import module1" > test.py
╭─phillip@phillip-laptop ~ ‹ruby-1.9.3@global› ‹pandas›
╰─$ touch module1.py
╭─phillip@phillip-laptop ~ ‹ruby-1.9.3@global› ‹pandas›
╰─$ py
Python 2.7.5 (default, May 17 2013, 07:55:04)
[GCC 4.8.0 20130502 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import test
>>> test.module1
<module 'module1' from 'module1.py'>
>>> from test import *
>>> module1
<module 'module1' from 'module1.py'>