Python中import和_import_区别是什么?从执行过程去理解

使用python模块和库的小伙伴应该都知道python之中去导入一个模块的时候使用的import这个语法,但是却很少有人知道python之中还有一个和它很像的函数叫做__import__() 。那这一篇文章就会从执行过程的角度来分析它们的区别,往下看看吧 。

Python中import和_import_区别是什么?从执行过程去理解

文章插图
(1)import导入模块的时候会先在整个python程序和本地的文件夹之中去搜索有没有整个模块,如果有的话就将其绑定到局部变量上就可以用了 。那么绑定这一步是由import这个关键词所指向的方法去完成的,但是在搜索模块这一步是调用__import__()来做的 。
(2)在搜索这个模块是否存在的时候会先从缓存sys.modules中去找,因为如果是已经在当前项目里使用过的模块会存在缓存之中 。缓存之中没有的话会将这个模块的名称放在缓存中后返回一个ModuleNotFoundError的异常,有的话就会生成一个module-spec并执行模块 。
(3)缓存之中没找到之后又会让importers找,这个importers指的就是系统文件的路径压缩包等等,会根据查找的结果返回相应的值 。
也就是说import和__import__()这两个是调用和被调用的关系,它们的区别在于一个表现形式为可以直接使用的关键词,另一个则是不可以去手动使用的内置函数 。
【Python中import和_import_区别是什么?从执行过程去理解】以上就是关于“Python中import和_import_()区别是什么?从执行过程去理解”的全部内容了,想要了解更多python的实用知识和代码示例可以持续关注这个频道,每次更新都会有很多新的知识技术分享给大家 。

    推荐阅读