极客小将

您现在的位置是:首页 » 原创课程 » Python

课程内容

Python入门课程NO76课 模块的导入机制

极客小将2020-09-08-
上节课讲到import可以进行模块的导入操作,通过improt导入后Python解释器会自动将导入的模块名写入到内置模块sys的modules属性中。 sys.modules是一个字典对象,键名为模块名。待更新...

上节课讲到import可以进行模块的导入操作,通过improt导入后Python解释器会自动将导入的模块名写入到内置模块sys的modules属性中。 sys.modules是一个字典对象,键名为模块名。

模块导入成功以后,Python会在sys.modules中进行记录。在导入的过程中,会首先在sys.modules中进行查找,如果查找失败,按"就近原则",会首先在当前目录进行查找,查找是否有同名的模块脚本,如果又查找失败,Python解释器接下来会去环境变量PYTHONPATH中进行查找,最后再去Python的系统目录中进行查找。如果查找成功,Python解释器会对模块进行编译,将其转译成字节码。

Python是一种解释型语言,解释性语言与C/C++等编译型语言的一个很重要的区别在于,Python解释器会先将Python程序转译成中间代码,这里的中间代码是Python字节码。Python将模块转译成Python字节码以后,将字节码载入到内存中,在内存中对字节码逐条地解释执行。

程序运行结束以后,在windows系统中会在模块的目录下生成一个__pycache__的目录,目录下面的pyc文件即为python字节码。在Linux系统中会直接在模块的目录中生成pyc文件。如果未对模块进行修改,Python下次进行模块导入时,会直接使用字节码文件,这样就提升了程序的执行效率。

网友点评

共有5条评论来说两句吧...

在线客服