【发布时间】:2014-05-05 11:31:36
【问题描述】:
import sys
from sys import argv
我阅读了有关 pydocs 中的 import 语句的信息。它说它分两步执行。 (1)找到一个模块,必要时初始化它; (2) 在本地命名空间中定义一个或多个名称(在 import 语句出现的范围内)。第一种形式(没有 from)对list 中的每个标识符重复这些步骤。带有from的表单执行一次步骤(1),然后重复执行步骤(2)。
在这里我了解到,在第一种情况下,sys 模块将作为第一步的一部分进行初始化,然后作为第二步将其提供给本地命名空间。
但是如果是第二个进口表格会发生什么?
将sys 模块作为第一步初始化,并且只有sys 模块的argv 函数(没有其他函数)可用于本地命名空间。
因为当我使用第二种形式的 import 语句时,我无法调用 sys 模块的任何其他函数。所以只是想具体澄清一下。好像sys 模块已经从导入语句中初始化,那么我们应该能够使用sys 调用其他函数。但这不起作用。
#import sys
from sys import argv
script, input = argv
print "This was the input entered by command line", input
print sys.path # this is not working giving error name sys is not defined.
我怀疑在 from import 语句 sys 模块未初始化的情况下,只有 argv 函数正在初始化,但在这种情况下,from step 执行 step(1) 一次意味着 pydocs 吗?(注意:我我正在研究 python 2.7)
【问题讨论】:
-
@MartijnPieters:您提到导入模块不会浪费任何东西;该模块始终是完全导入的(进入 sys.modules 映射),因此无论您使用 import sys 还是 from sys import argv 都没有任何问题。并且模块的其余部分也将在那里,然后为什么我无法使用 sys.path。这是我的问题
标签: python python-2.7 import