接触python将近一年的时间,有时反问自己:python是什么?自己倒没有一个很合理的答案。对python的理解仅仅停留在语法和应用层面上,而对语言本身了解欠缺。所以对《python源码剖析》很感兴趣。
下面是我学习python虚拟机部分的一些理解,供大家交流:
python是脚本语言吗?
脚本语言是一种解释性的语言,例如vbscript,javascript,installshield script等等,它不象c/c++等可以编译成二进制代码,以可执行文件的形式存在. 脚本语言不需要编译,可以直接用,由解释器来负责解释。但是python属于解释性语言,这种流行说法是错误的。python和Java、C#、的执行原理是一样的,两个关键字:虚拟机和字节码。
python.py(源代码) ---> python.dll(经过编译器得到) ----> python.pyc ----> python.dll(执行它) ----> 执行结果
上面表达了python程序执行的全过程。在这个过程中,python的解释器完成了一个很复杂的编译.py文件的过程。首先进行动作是对文件中的源码进行编译,编译的结果产生了一组python的byte code(字节码),然后将编译的结果交给python虚拟机,有虚拟机按照一条一条的执行字节码,从而完成对python程序的执行动作。
再看上面这个过程,会发现python。dll。Python的编译器和虚拟机都藏身于python.dll中,在安装Python的时候,安装程序会自动将这个dll放在windows/system32(windows平台)下。
哈哈,基本了解了python语言在计算机上的执行过程了吗?