真正的'导入'如何在Python中运行?

时间:2012-12-27 15:33:49

标签: python

我无法理解'import'语句在Python中的工作原理。

据说在sys.path()返回的目录中搜索包。但是,即使sys模块在​​每个Python程序中可用,它也不会自动导入。引导下的import语句导入sys模块也是如此吗?

2 个答案:

答案 0 :(得分:3)

sys模块vs import声明 - 又名。 “鸡还是鸡蛋?”

我相信sys module documentation说明了一切:

  

该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数。它始终可用。

所以,很快就会用不同的词语来表达:解释器有一些你可以使用sys模块访问的变量 - sys.path就是其中一个变量。< / p>

问题编号。 2. - import如何运作

说到“import语句如何运作”,您可以在此处阅读:http://docs.python.org/2/reference/simple_stmts.html#import。但是,它与您问题的主要部分并不真正相关:import语句与导入sys模块的关系。

答案 1 :(得分:3)

有两个阶段让你有点困惑。

  1. Python必须找到要导入的实际文件(包含代码),解析它,执行它并将其存储在某个地方。

  2. 然后必须将导入模块的名称本地绑定到模块对象。

  3. 也就是说,“找到模块sys并将其转换为模块对象”的过程与“将变量sys定义为模块”不同。

    您可以通过查看sys.modules来查看已加载的模块。


    作为一个单独的问题,有一些基本的Python实际上是硬编码到解释器中,而不是表示为磁盘上的单独文件。 sys是以下模块之一:没有sys.py文件;相反,它是已编译的C代码,包含在python.exe二进制文件中。