Python解释器执行原理

Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),
然后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。
这种机制的基本思想跟Java,.NET是一致的。
然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,
Python的Virtual Machine是一种更高级的Virtual Machine。
这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,
而是说和Java 或.NET相比,
Python的Virtual Machine距离真实机器的距离更远。
或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。
基于C的Python编译出的字节码文件,通常是.pyc格式。

原文地址:http://blog.51cto.com/ilctc/2094039

时间: 2024-08-02 21:15:35

Python解释器执行原理的相关文章

【和我一起学python吧】Python解释执行原理

这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件.运行该程序的时候,就可以把二进制程序从硬盘载入到内存中并运行. 但是对于Python而言,python源码不需要编译成二进制代码,它可以直接从源代码运行程序.当我们运行python文件程序的时候,python解释器将源代码转换为字节码,然后再由python解释器来执行这些字节码.这样,python就不用担心程序的编译,库

【跟我一起学Python吧】Python解释执行原理

这里的解释执行是相对于编译执行而言的.我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件.运行该程序的时候,就可以把二进制程序从硬盘载入到内存中并运行. 但是对于Python而言,python源码不需要编译成二进制代码,它可以直接从源代码运行程序.当我们运行python文件程序的时候,python解释器将源代码转换为字节码,然后再由python解释器来执行这些字节码.这样,python就不用担心程序的编译,库

python入门-python解释器执行

最近由于公司需要,接触了python这门神奇的语言,给我的感觉就是开发快速和代码简洁. 开始还是先罗列一下解释性语言和编译性语言的差别吧0.0!   编译性语言:是在程序运行前,需要专门的一个编译过程,如生成exe,hex文件等特定的机器语言文件.(必须在特定系统上).  所以以后就可以直接运行,不用在进行编译了.但该文件不能夸操作系统系统平台,因为该文件在不同操作系统中是不识别的. 解释性语言:不需要解释,是在程序执行的时候,运行一行翻译一行.所以每次执行都要进行解释.  两者的本质区别  1

Python程序执行原理

1.首先在code.h中查看PyCodeObject的struct 1 typedef struct { 2 PyObject_HEAD 3 int co_argcount; /* #arguments, except *args */ 4 int co_nlocals; /* #local variables */ 5 int co_stacksize; /* #entries needed for evaluation stack */ 6 int co_flags; /* CO_...,

python基础-程序执行原理

1.程序执行原理: 2.python的执行原理: 3.程序的作用:处理数据 4.变量就是用来存储数据的 原文地址:https://www.cnblogs.com/leading-net/p/12550039.html

winfrom桌面程序调用python解释器

Winfrom桌面程序调用python解释器执行py脚本后台执行完成具体的功能,为什么要这样处理呢?因为我现在的大部分过项目都是后台的脚本处理,界面基本的输入完成之后,将参数按照规则传入到脚本的入口,根据参数的不同执行不同的脚本流程,如果要修改某一个处理过程或者添加新的模块,不需要修改前台的任何代码,只需要在脚本中修改就可以达到需求的效果,简单.方便,风险较小,影响可控等优点. 因此,我做了一个demo,仅供参考,不足之处,请赐教! 界面如图: Start_exe_py的执行代码如下: 1 pr

PyCharm 配置远程python解释器和在本地修改服务器代码

PyCharm 配置远程python解释器和在本地修改服务器代码 最近在学习机器学习的过程中,常常需要将本地写的代码传到GPU服务器中,然后在服务器上运行.之前的做法一直是先在本地写好代码,然后通过FileZilla这样的文件传输工具来将写好的文件传到服务器,再通过ssh工具远程连接到服务器,执行相应的python脚本.这样的方式十分繁琐,效率很低.今天听到朋友提到了配置远程解释器 使用场景 先说说自己的使用场景,我是在什么情况下,需要将IDE配置成这样的环境来方便我的工作. 首先,我需要在本地

用 Python 编写的 Python 解释器

Allison是Dropbox的工程师,在那里她维护着世界上最大的由Python客户组成的网络.在Dropbox之前,她是Recurse Center的引导师, - 她在北美的PyCon做过关于Python内部机制的演讲,并且她喜欢奇怪的bugs.她的博客地址是akaptur.com. Introduction Byterun是一个用Python实现的Python解释器.随着我在Byterun上的工作,我惊讶并很高兴地的发现,这个Python解释器的基础结构可以满足500行的限制.在这一章我们会

python解释器和变量

目录 一.python解释器 执行python程序的两种方式 1.交互式 2.命令行式 二.变量 如何使用变量 1.定义变量 2.变量的组成 3.变量名命名规范 定义变量三个特征 定义变量的三个特征 变量比较 三.常量 一.python解释器 执行python程序的两种方式 1.交互式 在终端命令cmd中运行,敲完一条命令按下enter键马上能看到结果,程序调试起来比较方便,但是程序无法永久保存,关掉终端窗口数据就消失了. 2.命令行式 使用文本编辑器,在文本编辑器中写入一串字符,使用pytho