我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python虚拟机解释器及运行过程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python虚拟机解释器及运行过程

python虚拟机解释器

我闲来翻了翻几年前就买的一本python的书,O'REILLY的【python学习手册】,中译版,很厚。

可惜,我看得非常少,这也是为什么我在简历上关于python顶天也就写个熟悉,就这都担心找虐。虽说java的学习价值更大,但是学了平时用不上,忘得快。再加上做题的时候,感觉还是用python来得更得心应手些(废话,别的你也不熟啊),于是我决定把书看完,记录出以前不知道的,或者忽视掉的知识细节。

什么是python解释器

1. 解释性语言和编译性语言

说到解释器,大家之前多少都听过解释性语言和编译性语言。首先,不管是这二位其中的谁,源代码对于计算机来说,都是读不懂的,计算机只认识二进制指令。所以,想让程序被执行,那么自然要先把源代码转化为二进制指令,也就是机器码。

那么,在什么时候进行转换呢?

有的语言要求必须提前把代码一次性转换完毕,这种就是编译型语言,用的转换工具就叫编译器,比如C语言、C++。有的语言则可以一边执行一边转化,用到哪里了就转哪里,这种就是解释性语言,用的转化工具叫解释器,比如python、javascript。

java比较特殊,既有编译又有解释。但是编译并没有直接编译成机器码,而是编译成字节码,然后再拿到虚拟机中执行。这种设计初衷是在跨平台的同时兼顾执行效率,这里就不展开了。

ok,上面就是铺垫了。

2. python解释器

python解释器是一种让其他程序运行起来的程序,编写的python代码必须在解释器中运行,这东东已经在我们安装python的时候都装上了。
所以,现在我print(hello world),就可以运行了,控制台可以看到文本的输出。

3. python程序运行过程

上面的一行代码虽然简单,但是python运行它还是经过了两步操作:

将源代码编译成为“字节码”转发“字节码”到“虚拟机”

字节码编译

可以理解为翻译,把print(hello world)翻译成字节码,字节码会保存在后缀名是.pyc的文件里,这文件其实就是编译后的.py源代码。

这些字节码相较于源代码,运行起来速度要快得多。为什么?

因为在下一次运行程序时,如果在上次保存了字节码之后没有修改过源代码了,Python就会加载.pyc文件并且跳过编译这个步骤。

当必须要重新编译时,python会自动检查源文件和字节码文件的时间戳,如果你又保存了源代码,下次程序运行时,字节码将自动重新创建。

python虚拟机

Python Virtual Machine,简写为PVM,当有字节码文件之后,就会被发送到PVM里来执行。

这里注意,PVM并不是指的一个独立的程序,是不需要安装的。可以把PVM理解为Python的运行引擎,是一个迭代运行字节码指令的大循环,一个个的完成操作,直到结束。
从技术角度看,PVM才是“解释器”的最后一步。

关于python的性能

大家都知道,python的缺点是运行慢。但其实这里的慢也只是相对而言,跟C和C++这类编译性语言相比,确实执行速度还不够快。

为什么?

上述也提到了python会把源代码转成字节码,然后再将字节码解释出来。但是为了更好的跨平台性,这里的字节码是一种跟平台无关的格式,所以并不是底层的二进制代码。到目前为止,只要不是对运行速度有严苛要求的领域,比如数值计算或动画这种,经常需要核心处理单元至少以C语言的速度执行,绝大多数的应用,python还是可以胜任的。

相比于缺点,python带来开发效率的提升,相信也是很多人喜爱的的重要因素。

以上就是python虚拟机解释器及运行过程的详细内容,更多关于python虚拟机解释器的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python虚拟机解释器及运行过程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python虚拟机解释器及运行过程是什么

今天小编给大家分享一下python虚拟机解释器及运行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是pytho
2023-06-30

如何理解Python虚拟机中的Python运行环境

今天就跟大家聊聊有关如何理解Python虚拟机中的Python运行环境,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。其实Python运行环境是一个全局性的概念,而执行环境实际就是一个
2023-06-17

vmware虚拟机运行ubuntu等卡慢的问题及解决

这篇文章主要介绍了vmware虚拟机运行ubuntu等卡慢的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-14

虚拟机操作系统及Meego开发中MeegoSDK安装过程详解

1. 首先,在主机上下载并安装虚拟机软件,比如VMware Workstation或VirtualBox。2. 打开虚拟机软件,点击“新建虚拟机”按钮。在弹出的对话框中,选择“自定义(高级)”选项并点击“下一步”。3. 在下一个对话框中,选
2023-09-05

Android程序在Android9.0手机或者虚拟机上运行不了的解决方法

1、在虚拟机上我使用的是Android5.0版本,当前manifests的application标签配置如下,正确运行没问题。2、但是放到真机上(Android 9)就会闪退,于是在application标签里面添加一行代码:android
2022-06-06

XP系统运行虚拟机时提示内部错误的原因及解决方法

本篇内容主要讲解“XP系统运行虚拟机时提示内部错误的原因及解决方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“XP系统运行虚拟机时提示内部错误的原因及解决方法”吧!  原因分析:  其实,该问
2023-06-13

win10预览版10049虚拟机无法正常运行的原因以及解决方法

win10预览版10049已经开始推送给用户,但微软却警告开发者不要安装win10预览版10049,而具体原因则涉及到Hyper-V虚拟机在win10预览版10049中无法正常运行的问题,下面,我们来看看微软对win10预览版10049虚拟
2023-06-13

Python虚拟机字节码教程之装饰器实现详解

在本篇文章当中主要给大家介绍在 cpython 当中一些比较常见的字节码,从根本上理解 python 程序的执行。在本文当中主要介绍一些 python 基本操作的字节码,并且将从字节码的角度分析函数装饰器的原理
2023-05-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录