Python中‘+=’与‘+’的区别

通常我们都认为:‘a += b’ 就等同于‘a = a + b’,其实不然
For example:

num = [100]
def add(num):
  num += num
  print(num)
add(num)
print(num)

输出结果为:

[100, 100]
[100, 100]

当我们将‘num += num’更换为‘num = num + num’我们可以看一下输出结果的区别:

num = [100]
def add(num):
  num = num + num
  print(num)
add(num)
print(num)

输出结果为:

[100, 100]
[100]

可以看到在例子1中,使用‘num += num’,修改了全局变量的值;
而在例子2中,我们使用‘num = num + num’,却没有修改全局变量的值。

其中缘由可以我是这么理解的:
对于不可变类型:
两种方式都会创建新对象
对于可变类型:
+= 不会创建新对象,是在原对象上操作。
+会创建新对象

你可能感兴趣的:(Python中‘+=’与‘+’的区别)