Python入门课程NO76课 模块的导入机制
上节课讲到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下次进行模块导入时,会直接使用字节码文件,这样就提升了程序的执行效率。
- 上一篇
Python入门课程NO75课 什么是模块
一个脚本就是一个模块,在之前的课程中我们知道在脚本程序中定义的函数,可以在下文中被调用,同样,它也可以在其他脚本程序中调用,其实,在上节课我们已经使用了 import 进行模块的导入。import语句:将常用的功能分离到一个模块中,然后在其它模块中进行复用,这是模块的一
- 下一篇
Python入门课程NO77课 package是什么
package,即通常所说的包结构,是一种包裹模块文件的目录结构。通俗地来进行解释,package是一个模块仓库。可以通俗的理解为一个目录文件夹就是一个package,比如下图中的Lib和pip都是package。package也是对象,可以理解为一种命名空间对象。Python中的类有一个特殊的__init