就地赋值和再次使用变量名赋值有什么区别?

2024-09-27 21:27:20 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,在为变量赋值时,我们可以:

variable = variable + 20

或者

variable += 20。在

虽然我知道这两个操作在语义上是相同的,也就是说,它们实现了将variable的先前值增加20的相同目标,但我想知道这两个操作之间是否存在细微的运行时性能差异,或者是否存在任何其他可能认为一个比另一个更好的细微差异。 有什么区别吗,还是完全一样? 如果有任何不同,对于C++等其他语言是否相同?在

谢谢。在


Tags: 语言目标差异性能variable赋值区别语义上
1条回答
网友
1楼 · 发布于 2024-09-27 21:27:20

或许这可以帮助你更好地理解:

import dis

def a():
  x = 0
  x += 20
  return x

def b():
  x = 0
  x = x + 20
  return x

print 'In place add'
dis.dis(a)

print 'Binary add'
dis.dis(b)

我们得到以下输出:

^{pr2}$

你可以用一个计时器来做一千次左右的循环来比较性能,但主要的区别是这一次。我想二进制加法应该更快。在

相关问题 更多 >

    热门问题