提示信息

Python导入模块的本质

路远 已关注

Python导入模块的本质是将模块代码的定义和函数、变量等其他对象导入到当前代码中,以便在当前代码中使用。

当我们使用import语句导入一个模块时,Python解释器首先会在sys.modules中查找该模块是否已经导入过。如果模块已经导入过,解释器会直接从sys.modules中获取该模块的引用,并将其赋值给相应的变量。如果模块还没有导入过,解释器会执行以下步骤:

  1. 根据模块的名称在sys.modules中创建一个新的模块引用,以便查找和缓存已导入的模块。
  2. 根据模块的名称找到模块文件,并使用builtins作为全局作用域创建一个新的命名空间(即模块的命名空间)。
  3. 在新的命名空间中执行模块文件中的代码,将模块文件中的定义和语句加载到新的命名空间中。
  4. 将模块的命名空间绑定到sys.modules中相应的模块引用上,以便将模块缓存起来。
  5. 在当前代码中使用import语句的位置创建一个新的变量,并将模块的引用赋值给该变量,以便在当前代码中使用该模块。

通过这样的方式,我们可以在当前代码中使用已导入模块中定义的函数、变量和其他对象。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
路远 关注 已关注

最近一次登录:2023-10-09 16:14:50   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图