Python学习之:初识Python的编译和执行

初识Python的编译和执行

在最近开始被迫了解Python之前,已经很多年没有学习一门全新的语言(年纪大加上实在是太忙,好吧。。。我承认是我懒)。结果就是,各种不适应,各种记不住。无奈,只好把10多年前的上学做笔记的老套路再拿出来。

第一课,先写一点基础问题:

1. Python是编译型语言还是解释型语言?

就是说Python是编译执行,还是解释执行。计算机语言的执行过程历来有两种:

  • 1.编译执行
    源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译,CPU可以直接处理。例子,C、C++语言。
    优点:执行速度快。
    缺点:不具备可移植性。编译往往是针对特定CPU体系的,这些目标代码只能在特定平台执行,如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新编译。

  • 2.解释执行
    在运行期间,源代码被特定的解释器,逐行翻译成目标机器码。每次执行时,都需要逐行解释。例子:JavsScript。
    优点:可移植性好。因为解释器的存在,源代码往往独立于硬件和OS平台。而且,由于不需要考虑底层的一些问题,相对于编程人员来说难度降低,效率也会有所提升。
    缺点:由于增加了解释过程,执行速度会受一定影响。

  • 结论
    我们可以简单认为 Java、Python 都是“解释类型”的语言。
    但是(敲黑板!), Python并不是严格的解释型语言,因为 Python 代码每次运行都要进行转换成字节码(中间码),然后再有虚拟机(VM)把字节码转换成机器语言,最后才能在硬件上运行。正是由于可以中间代码和VM的存在,Python(Java也一样)才被说成不是严格意义上的解释语言,或者叫“解释类型”。每个 .py 文件将被换转成 .pyc 文件,.pyc 就是一种字节码文件,它是与平台无关的中间代码,不管你放在 Windows 还是 Linux 平台都可以执行,运行时将由虚拟机逐行把字节码翻译成目标代码。
    当然,Python可以通过工具打包成可执行文件,但这个已经不是与语言本身的特性了。

2. Python执行过程解析?

Python源码被编译成的中间码(字节码),其实是模仿的x86的汇编,然后将代码编译成一条一条的指令交给一个虚拟的CPU去执行。详细过程有大神已经说明的很详细了,这里转载供参考了。

Python编译过程和执行原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值