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’,却没有修改全局变量的值。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容