如果“if”中没有其他情况,则性能得到改进,因为字节码不会将执行传递到“if”情况。
这里有一些功能和输出 dis.dis(foo):
以下是示例应用程序:def foo(x):
if x:
pass
else:
return x+2
拆解为:5 0 LOAD_FAST 0 (x)
3 POP_JUMP_IF_FALSE 9
6 6 JUMP_FORWARD 8 (to 17)
8 >> 9 LOAD_FAST 0 (x)
12 LOAD_CONST 1 (2)
15 BINARY_ADD
16 RETURN_VALUE
>> 17 LOAD_CONST 0 (None)
20 RETURN_VALUE
以及:def foo(x):
if not x:
return x+2
拆解为:11 0 LOAD_FAST 0 (x)
3 POP_JUMP_IF_TRUE 14
12 6 LOAD_FAST 0 (x)
9 LOAD_CONST 1 (2)
12 BINARY_ADD
13 RETURN_VALUE
>> 14 LOAD_CONST 0 (None)