python 是解释型还是编译型
参考借鉴了⼀些⽹络上的⽂章,⼤概搞清楚python 的执⾏过程。
python 是解释型还是编译型
java python是什么意思Python 和Java/C#⼀样,也是⼀门基于虚拟机的语⾔,先来从表⾯上简单地了解⼀下Python 程序的运⾏过程。
在命令⾏中输⼊python hello.py 时,其实是激活了Python 的“解释器”,告诉“解释器”:你要开始⼯作了。可是在“解释”之前,其实执⾏的第⼀项⼯作和Java ⼀样,是编译。
在命令⾏中如何执⾏⼀个Java 的程序:
在⽤Eclipse 之类的IDE 时,将这两部给融合成了⼀部⽽已。其实Python 也⼀样,当执⾏python hello.py 时,他也⼀样执⾏了这么⼀个过程,所以应该这样来描述Python ,Python 是⼀门先编译后解释的语⾔。
简述Python 的运⾏过程
先来说两个概念,PyCodeObject 和pyc ⽂件。
PyCodeObject 则是Python 编译器真正编译成的结果。
当python 程序运⾏时,编译的结果则是保存在位于内存中的PyCodeObject 中,当Python 程序运⾏结束时,Python 解释器则将PyCodeObject 写回到pyc ⽂件中。
当python 程序第⼆次运⾏时,⾸先程序会在硬盘中寻pyc ⽂件,如果到,则直接载⼊,否则就重复上⾯的过程。
故,pyc ⽂件其实是PyCodeObject 对象的⼀种持久化保存⽅式。
pyc 的⽬的是重⽤
总结
源代码在编译器编译成字节码(PyCodeObject
)放在内存中,PVM 解释执⾏字节码。
第⼆次运⾏,直接读取字节码,PVM 解释执⾏字节码,省去了编译的时间。
参考javac hello.java
java hello
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论