Python中的"i += X"与“i = i + X”的区别
Python中的"i += X"与“i = i + X”的区别
东方神剑 发表于2年前
Python中的"i += X"与“i = i + X”的区别
  • 发表于 2年前
  • 阅读 430
  • 收藏 2
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

摘要: Python中的"i += X"与“i = i + X”的区别在哪里呢?乱用的结果是什么呢?

请问,什么情况下 "i += x" 不等于 "i = i + x"?

  

l2 = l1以及l4 = l3是指它们之间的内存地址是一样的,+=是在原对象基础上进行操作的,而i = i + x的形式则是重新创建了一个新的对象。

但是,事情真的这样吗?我们知道列表中,元组是不可变的,如果我们将上面的例子改为元组呢,l2 += (4,5),会报错提示你元组不可变还是自动创建一个新的对象呢?

 

数字也是不可改变的,

 

从上面几个实验可以发现,i = i + X的形式,对象i一定不是原来的对象i了,而i += X的形式分为两种,当对象i是不可变类型(比如元组,数值等),对象i也一定不再是原来的对象i,而当对象i是可变对象时,对象i还是原来的对象i。无论什么情况下,l1 = l2这句话都是l1l2代表同一个内存地址,也就是他们之间是完全一致的。

标签: python i+=x i=i+x
共有 人打赏支持
东方神剑
粉丝 61
博文 126
码字总数 93166
×
东方神剑
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: