我无法理解“import”语句在 Python 中的工作原理。
据说在返回的目录中搜索包sys.path()
。然而,即使sys
模块在每个 Python 程序中自动可用,它也不会自动导入。引擎盖下的import
语句导入模块也是如此吗?sys
我无法理解“import”语句在 Python 中的工作原理。
据说在返回的目录中搜索包sys.path()
。然而,即使sys
模块在每个 Python 程序中自动可用,它也不会自动导入。引擎盖下的import
语句导入模块也是如此吗?sys
sys
模块与import
语句 - 又名。“鸡还是鸡蛋?”我相信sys
模块文档说明了一切:
该模块提供对解释器使用或维护的一些变量以及与解释器进行强交互的函数的访问。它总是可用的。
因此,简而言之:解释器有一些您可以使用sys
模块访问的变量-sys.path
就是这样的变量之一。
import
工作原理当谈到“import
语句如何工作”时,您可以在这里阅读:http: //docs.python.org/2/reference/simple_stmts.html#import。但是,它与您问题的主要部分并不真正相关:import
语句和导入sys
模块的关系。
有两个阶段你会有点困惑。
Python 必须找到您要导入的实际文件(包含代码),对其进行解析、执行并将其存储在某处。
然后它必须将本地导入模块的名称绑定到模块对象。
也就是说,“找到模块sys
并将其转化为模块对象”的过程与“定义变量sys
表示模块”是不一样的。
您可以通过查看来检查哪些模块已加载sys.modules
。
作为一个单独的问题,有一些 Python 基础知识实际上是硬编码到解释器中的,而不是在磁盘上表示为单独的文件。sys
是这些模块之一:没有sys.py
文件;相反,它是包含在python.exe
二进制文件中的编译后的 C 代码。