谈谈 Python 程序的运行原理
来源:互联网 发布:淘宝不发货卖家不说话 编辑:程序博客网 时间:2024/05/29 05:10
执行 python demo.py 后,将会启动 Python 的解释器,然后将 demo.py 编译成一个字节码对象 PyCodeObject。
在 Python 的世界中,一切都是对象,函数也是对象,类型也是对象,类也是对象(类属于自定义的类型,在 Python 2.2 之前,int, dict 这些内置类型与类是存在不同的,在之后才统一起来,全部继承自 object),甚至连编译出来的字节码也是对象,.pyc 文件是字节码对象(PyCodeObject)在硬盘上的表现形式。
所以,在运行期间,编译结果也就是 PyCodeObject 对象,只会存在于内存中,而当这个模块的 Python 代码执行完后,就会将编译结果保存到了 pyc 文件中,这样下次就不用编译,直接加载到内存中。pyc 文件只是 PyCodeObject 对象在硬盘上的表现形式。
Python 标准库提供了用来生成代码对应字节码的工具 dis。dis 提供一个名为 dis 的方法,这个方法接收一个 code 对象,然后会输出 code 对象里的字节码指令信息。
s = open('demo.py').read()co = compile(s, 'demo.py', 'exec')import disdis.dis(co)
demo.py 被编译后,接下来的工作就交由 Python 虚拟机来执行字节码指令了。Python 虚拟机会从编译得到的 PyCodeObject 对象中依次读入每一条字节码指令,并在当前的上下文环境中执行这条字节码指令。我们的程序就是通过这样循环往复的过程才得以执行。
原文链接:
http://www.cnblogs.com/restran/p/4903056.html
阅读全文
0 0
- 谈谈 Python 程序的运行原理
- 谈谈 Python 程序的运行原理
- 谈谈 Python 程序的运行原理
- 谈谈 Python 程序的运行原理
- 谈谈 Python 程序的运行原理
- 谈谈 Python 程序的运行原理
- Python 程序的运行原理
- Python 程序的运行原理[转]
- Python程序运行原理解释
- 程序运行的原理
- 程序运行的原理
- IOS程序的运行原理
- JAVA程序运行的原理?
- Java运行程序的原理
- 软件程序运行的原理,运行是什么意思
- Python程序的执行原理
- Python程序的执行原理
- Python程序的执行原理
- Sharedprefres
- 数据结构课程设计【家庭财务管理系统】
- CTF线下防御战 — 让你的靶机变成“铜墙铁壁”
- 视觉SLAM技术及其应用(章国锋--复杂环境下的鲁棒SfM与SLAM)
- 超级实用的Android磁盘缓存工具DiskDataCacher用法以及原理
- 谈谈 Python 程序的运行原理
- 3分钟带您了解Docker EE的访问控制原理(内附实操案例)
- python爬虫webdriver.Chrome 数据可视化简单案例matplotlib
- 代理模式
- Android 仿京东订单页面
- 数组
- 矩形的周长和面积
- Java的作业调度类库Quartz基本使用指南
- BioPerl-初探