【Python】CPython解释器及字节码

        看了set和dict,看到了字节码和dis模块,看了字节码又不能不看python解释器,很多东西都是相互关联想通。看了一篇文章https://www.cnblogs.com/nelsen-chen/p/9122629.html,后面要自己整理出逻辑来。

python作为解释性语言,相对于编译性语言的特点为,是一种边解释边运行的语言,而编译性语言需要完全编译后才可以运行。部分语言的改动都要从新编译,因此可脱离编译环境运行。解释性语言的特点,部分改动不需要整体编译,但离不开解释器。

       解释性语言与编译性语言的本质性特征是,程序执行时是在实际的计算机上进行,还是在软件虚拟机上进行执行。python解释器(或者称其为python虚拟机?)在这其中充当的角色为,将源代码变成字节码pyc, python解释器并执行这些代码。

关于python的运行过程:

【Python】CPython解释器及字节码_第1张图片

 

        前面说到python需要边解释变运行,如果每次运行都要从头进行解释,将会进行大量重复性的工作。Python通过引入pyc文件来减少重复性解释工作。也就是将py文件的解释结果存放在pyc文件之中。关于pyc文件需要明确的几点:

        1、当前调用的主程序不会生成pyc

        2、只会import进来的模块生成pyc文件

        3、每次使用pyc文件时,都会对其创建时间和其源模块进行对比,若源模块发生了修改则进行从新生成pyc

你可能感兴趣的:(python相关)