python创建的源程序怎么运行_Python如何运行程序

《Python学习手册》第二章读书笔记。主要记录一些重难点,以及补充一些知识。

Python解释器简介

Python是一种解释型语言。当Python包安装在机器上后,它会生成一些组件:至少包括一个解释器和一套支持库。Python的解释器可以分为:Cpython、Jython、Pypy等。但无论采取何种形式,编写的Python代码必须在解释器中运行。当然,为了实现这一点,首先必须在计算机上安装Python解释器。

【补充】编译器和解释器写了五年代码还没搞懂编译器和解释器是啥_原理​www.sohu.com0a9da36413d4ce6e0637296d3ed98352.png

编译器:源程序 —— 目标程序(执行)

解释器:源程序 —— 字节码文件(.pyc) —— 虚拟机一行一行解释(执行)

程序执行

1. 程序员的视角:代码-运行

就最简单的形式而言,一个Python程序仅是一个包含Python语句的文本文件(你可以使用任何文本编辑器去编辑)。按照惯例,Python文件是以.py结尾的。从技术上讲,这种命名方案在被“导入”时才是必须的,但绝大多数Python文件为了统一都是以.py命名的。

当你创建完.py文件后,必须告诉Python去执行这个文件。也就是说,从头到尾按照顺序一个接一个地运行文件中的语句。可以通过命令行,从IDE中点击其图标或者其他标准技术来运行Python程序。

2. Python的视角

当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤。确切地说,就是我们之前提到过的“编译-解释”的过程。

字节码编译

执行程序时,Python内部会先将源代码编译成所谓字节码的形式。编译是一个简单的翻译步骤,字节码是一种低级的、与平台无关的表现形式。概括地说,Python通过把每一条源代码分解为单一步骤来翻译成一组字节码指令。这些字节码可以提高执行速度。比起文本文件中原始的源代码语句,字节码的运行速度要快的多。

如果下一次你执行时,并没有改变源代码或Python的版本,那么Python就无需再次编译,而可以直接使用上一次的.pyc文件。

需要注意,字节码只会针对那些被导入(import)的文件生成,而不是顶层的执行脚本。

Python虚拟机(PVM)

一旦程序编译成字节码(或者字节码从已经存在的.pyc文件中载入),之后的字节码发送到通常称为Python虚拟机(Python Virtual Machine)的程序上执行。PVM并不是一个独立的程序,不需要安装。本质上,PVM就是迭代运行字节码指令的一个大循环,一个接一个地完成操作。PVM是Python的运行时引擎,它时常表现为Python系统的一部分,并且是实际运行脚本的组件。从技术上讲,它只是所谓“Python解释器”的最后一步。

性能分析Python的工作中通常没有构建或“make”的步骤,代码在写好之后立即运行。

Python的字节码不是机器的二进制代码(例如Inter或ARM芯片的指令)。字节码是特定于Python的一种表现形式。

这就是Python代码无法运行得像C或C++代码一样快的原因。PVM循环(而不是CPU芯片)仍然需要解释字节码,并且字节码指令比CPU指令需要更多的工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值