原文:《深度剖析CPython解释器》12. 剖析字节码指令,从不一样的角度观测Python源代码的执行过程

楔子 上一章中,我们通过 PyEval EvalFrameDefault看到了Python虚拟机的整体框架,那么这一章我们将深入到 PyEval EvalFrameDefault的各个细节当中,深入剖析Python的虚拟机,在本章中我们将剖析Python虚拟机是如何完成对一般表达式的执行的。这里的一般表达式包括最基本的对象创建语句 打印语句等等。至于if while等表达式,我们将其归类于控制流语 ...

2020-08-18 17:12 0 518 推荐指数:

查看详情

深度剖析CPython解释器》22. 解密Python中的生成器对象,从字节码角度分析生成器的底层实现以及执行逻辑

楔子 下面我们来聊一聊Python中的生成器,它是我们理解后面协程的基础,生成器的话,估计大部分人在写程序的时候都想不到用。但是一旦用好了,确实能给程序带来性能上的提升,那么我们就来看一看吧。 生成器 基本用法 我们知道,一个函数如果它的内部出现了yield关键字,那么它就不再是普通的函数 ...

Sun Sep 06 08:55:00 CST 2020 4 301
深度剖析CPython解释器》6. 解密Python中bytes对象的底层实现,以及相关操作

楔子 不少编程语言中的"字符串"都是使用字符数组(或者称字符序列)来表示,比如C语言和go语言就是这样。 一个字节最多能表示256个字符,所以对于英文来说足够了,因此一个英文字符占一个字节即可,然而对于那些非英文字符便力不从心了。因此为了表示这些非英文编码,于是多字节编码应运而生 ...

Thu Aug 06 06:40:00 CST 2020 7 892
深度剖析CPython解释器》31. Python 和 C / C++ 联合编程

楔子 Python 和 C / C++ 混合编程已经屡见不鲜了,那为什么要将这两种语言结合起来呢?或者说,这两种语言混合起来能给为我们带来什么好处呢?首先,Python 和 C / C++ 联合,无非两种情况。 1. C / C++ 为主导的项目中引入 Python; 2. ...

Fri Feb 12 09:56:00 CST 2021 6 826
深度剖析CPython解释器》10. Python中的PyCodeObject对象与pyc文件

楔子 当我们想要执行一个py文件的时候,只需要python xxx.py即可,但是你有没有想过这背后的流程是怎么的呢?从这里开始我们就开始进入到Python虚拟机的环节了,之前都是在介绍Python中的一些内置对象,不过虚拟机的执行流程、以及背后的原理却更是值得我们关注的。 这里我们先来 ...

Sat Aug 15 10:31:00 CST 2020 0 642
深度剖析CPython解释器》32. Python 和 Go 联合编程

楔子 Python 可以和 C 无缝结合,通过 C 来为 Python 编写扩展可以极大地提升 Python 的效率,但是使用 C 来编程显然不是很方便,于是本人想到了 Go。对比 C 和 Go 会发现两者非常相似,没错,Go 语言具有强烈的 C 语言背景,其设计者以及语言的设计目标都和 C ...

Wed May 19 01:39:00 CST 2021 1 2107
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM