python code对象 底层实现 源码分析 PyCodeObject

PyCodeObject

本文参考的是 3.8.0a0 版本的代码,详见  cpython 源码分析 基本篇

以后都在 github 更新,请参考  详解 python code

 

在编译好的 c 程序里面,code object 可以理解成一段二进制的数据,每一个字节都有与之对应的机器指令,Program Counter 在对应的程序的代码段上,按照顺序执行机器指令,这个程序就能按照作者的意图去运行

在 Python 里也有对应的代码段,但由于 python 的指令是基于 python 虚拟机的指令,而不是真正的机器指令,这些指令也有对应的二进制表示方式,比如执行某个函数的时候,python 虚拟机装载对应函数的 PyCodeObject,从这个 PyCodeObject 里面找到虚拟机指令,并逐条执行

PyCodeObject 的 memory layout 如下所示

 由图所示,PyCode

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值