本文主要是介绍没有else的if是否更为高效?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在python中,探讨if else和if 的效率问题。
比如下面2个python 自定义函数
def get_sum(a,b):if a > b:return a+belse:return a+bdef get_sum_no_else(a,b):if a > b :return a+breturn a+b
通过引入 dis模块,进行字节码编译,分别得到如下结果:
- dis.dis(get_sum)
dis.dis(get_sum) 2 0 LOAD_FAST 0 (a)2 LOAD_FAST 1 (b)4 COMPARE_OP 4 (>)6 POP_JUMP_IF_FALSE 163 8 LOAD_FAST 0 (a)10 LOAD_FAST 1 (b)12 BINARY_ADD14 RETURN_VALUE5 >> 16 LOAD_FAST 0 (a)18 LOAD_FAST 1 (b)20 BINARY_ADD22 RETURN_VALUE24 LOAD_CONST 0 (None)26 RETURN_VALUE
- dis.dis(get_sum_no_else)
dis.dis(get_sum_no_else) 7 0 LOAD_FAST 0 (a)2 LOAD_FAST 1 (b)4 COMPARE_OP 4 (>)6 POP_JUMP_IF_FALSE 168 8 LOAD_FAST 0 (a)10 LOAD_FAST 1 (b)12 BINARY_ADD14 RETURN_VALUE9 >> 16 LOAD_FAST 0 (a)18 LOAD_FAST 1 (b)20 BINARY_ADD22 RETURN_VALUE
可以看到,没有else少了2段字节码:
24 LOAD_CONST 0 (None)26 RETURN_VALUE
所以在字节码越少效率越高的前提下,if的效率比if else的效率更高。
这篇关于没有else的if是否更为高效?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!