我正在浏览python的dis包。我试过代码来看看它是如何工作的
>>> def get():
... x=4
... y=x+3 ............ this line
... z=8
... return y
然后运行dis.dis(get)
,它打印上述代码的字节码指令。
x+3
字节码指令的是BINARY_ADD
,当通过包文档时,我找到了另一个术语INPLACE_ADD
虽然在那里他们已经提到了什么是INPLACE_ADD
,但我没有得到区别。
我有两个问题
A)。 BINARY_ADD
和INPLACE_ADD
B)。如何编写代码,以便字节码指令显示INPLACE_ADD
答案 0 :(得分:5)
INPLACE_ADD
是+=
运算符:
>>> from dis import dis
>>> def f():
... x += y
...
>>> dis(f)
2 0 LOAD_FAST 0 (x)
3 LOAD_GLOBAL 0 (y)
6 INPLACE_ADD
7 STORE_FAST 0 (x)
10 LOAD_CONST 0 (None)
13 RETURN_VALUE