1

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

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

4

2 回答 2

3

sys模块与import语句 - 又名。“鸡还是鸡蛋?”

我相信sys模块文档说明了一切:

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

因此,简而言之:解释器有一些您可以使用sys模块访问的变量-sys.path就是这样的变量之一。

问号 2. -import工作原理

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

于 2012-12-27T15:39:24.507 回答
3

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

  1. Python 必须找到您要导入的实际文件(包含代码),对其进行解析、执行并将其存储在某处。

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

也就是说,“找到模块sys并将其转化为模块对象”的过程与“定义变量sys表示模块”是不一样的。

您可以通过查看来检查哪些模块已加载sys.modules


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

于 2012-12-27T15:40:10.190 回答