我无法理解'import'语句在Python中的工作原理。
据说在sys.path()
返回的目录中搜索包。但是,即使sys
模块在每个Python程序中可用,它也不会自动导入。引导下的import
语句导入sys
模块也是如此吗?
答案 0 :(得分:3)
sys
模块vs import
声明 - 又名。 “鸡还是鸡蛋?”我相信sys
module documentation说明了一切:
该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。
所以,很快就会用不同的词语来表达:解释器有一些你可以使用sys
模块访问的变量 - sys.path
就是其中一个变量。< / p>
import
如何运作说到“import
语句如何运作”,您可以在此处阅读:http://docs.python.org/2/reference/simple_stmts.html#import。但是,它与您问题的主要部分并不真正相关:import
语句与导入sys
模块的关系。
答案 1 :(得分:3)
有两个阶段让你有点困惑。
Python必须找到要导入的实际文件(包含代码),解析它,执行它并将其存储在某个地方。
然后必须将导入模块的名称本地绑定到模块对象。
也就是说,“找到模块sys
并将其转换为模块对象”的过程与“将变量sys
定义为模块”不同。
您可以通过查看sys.modules
来查看已加载的模块。
作为一个单独的问题,有一些基本的Python实际上是硬编码到解释器中,而不是表示为磁盘上的单独文件。 sys
是以下模块之一:没有sys.py
文件;相反,它是已编译的C代码,包含在python.exe
二进制文件中。