我应该编写什么函数/类来获取 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
输出。
您还可以在 foo
的字节码中看到 LOAD_CLOSURE
。
关于python - 如何在 dis.dis 之后获取 LOAD_CLASSDEREF 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57533081/