对我来说,这似乎是一个可以忽略不计的速度:
> python -m timeit 'a = 50; b = a*12-1; c = a*b; c; c*100+10; c/100+20;'
1000000 loops, best of 3: 0.27 usec per loop
> python -m timeit '50*(50*12-1); 50*(50*12-1) * 100 + 10; 50*(50*12-1) / 100 + 20'
1000000 loops, best of 3: 0.218 usec per loop
赋值比不断重新计算要慢一些,但正如 korylprince 在评论中所说,赋值将使代码更易于阅读。
编辑:我认为这是 gnibbler 在评论中的意思,但它仍然较慢:
> python -m timeit 'def x(): a = 50; b = a*12-1; c = a*b; c; c*100+10; c/100+20;' 'x()'
1000000 loops, best of 3: 0.428 usec per loop
edit2:这实际上是gnibbler在评论中的意思,差异仍然可以忽略不计。关于使用更具可读性的评论仍然成立:
> python -m timeit -s 'def x(): a = 50; b = a*12-1; c = a*b; c; c*100+10; c/100+20;' 'x()'
1000000 loops, best of 3: 0.367 usec per loop
> python -m timeit -s 'def x(): 50*(50*12-1); 50*(50*12-1) * 100 + 10; 50*(50*12-1) / 100 + 20' 'x()'
1000000 loops, best of 3: 0.278 usec per loop