为什么Python代码在函数中运行得更快?def main():
for i in xrange(10**8):
passmain()Python中的这段代码运行在(注意:时间是用Linux中的Bash中的Time函数完成的)。real 0m1.841suser 0m1.828ssys 0m0.012s但是,如果for循环没有放在函数中,for i in xrange(10**8):
pass然后它运行的时间要长得多:real 0m4.543suser 0m4.524ssys 0m0.012s这是为什么?
3 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
2 0 SETUP_LOOP 20 (to 23) 3 LOAD_GLOBAL 0 (xrange) 6 LOAD_CONST 3 (100000000) 9 CALL_FUNCTION 1 12 GET_ITER >> 13 FOR_ITER 6 (to 22) 16 STORE_FAST 0 (i) 3 19 JUMP_ABSOLUTE 13 >> 22 POP_BLOCK >> 23 LOAD_CONST 0 (None) 26 RETURN_VALUE
1 0 SETUP_LOOP 20 (to 23) 3 LOAD_NAME 0 (xrange) 6 LOAD_CONST 3 (100000000) 9 CALL_FUNCTION 1 12 GET_ITER >> 13 FOR_ITER 6 (to 22) 16 STORE_NAME 1 (i) 2 19 JUMP_ABSOLUTE 13 >> 22 POP_BLOCK >> 23 LOAD_CONST 2 (None) 26 RETURN_VALUE
STORE_FAST
STORE_NAME
i
dis
compile
添加回答
举报
0/150
提交
取消