python - 如何在 dis.dis 之后获得 LOAD_CLASSDEREF 指令?
问题描述
我应该编写什么函数/类来获取 LOAD_CLASSDEREF 作为字节码指令?
我已经能够找到导致 LOAD_BUILD_CLASS、LOAD_CONST、LOAD_GLOBAL、LOAD_FAST、LOAD_ATTR、LOAD_DEREF、LOAD_NAME、字节码的函数/类,但是什么函数/类会给出 LOAD_CLOSURE 和 LOAD_CLASSDEREF?
解决方案
LOAD_CLASSDEREF
用于当类主体访问闭包变量时,因此让类主体访问闭包变量:
def foo():
x = 3
class Bar:
print(x)
然后,代码对象Bar
将使用LOAD_CLASSDEREF
. 根据您的 Python 版本,您可能必须从中挖掘代码对象foo.__code__.co_consts
并直接调用dis.dis
该代码对象以查看dis.dis
输出中的操作码。
您还可以LOAD_CLOSURE
在foo
.
推荐阅读
- sql-server - 如何通过 alter table 启用增量统计
- python - 在 gremlin-python 中使用合并和值之间的组合失败
- android - 一个一个地显示文本
- visual-studio-code - 需要帮助在 Visual Studio Code 中安装扩展
- typescript - 如何检查数组是否不包含 Ionic 4 上的另一个数组?
- javascript - 是否有可能在一个阶段获得所有字符的句柄?
- winston - 如何防止高级消息登录到winston中的所有低级消息?
- java - Springboot application.properites 未读取
- c# - 将整个字符串数组转换为双数组会引发输入格式异常,但转换单个元素可以正常工作
- function - 制作一个在 firebase deploy 上执行的函数