如何理解Python中+=是什么意思?怎么⽤?
这个运算符还是学习python最基础内容时候最先了解的,今天⼩编在运⾏代码时候,在这个位置踩了坑,⼤家⼀起来看看吧~
前⾔:
今天在运⾏之前写的⼀个Python脚本时,发⽣了⼀个奇怪的现象(我怎么⽼遇到奇怪的现象~~)。当时的代码⼤概长这样:
a = [1, 2, 3]
b = [4, 5, 6]
# …⼀⼤段逻辑
c = a
c += b
# …⼀⼤段逻辑
# 在这⾥,a变成了[1, 2, 3, 4, 5, 6]
⾸先,上⾯的代码⼀个函数过于长了,实在不像话
当时的情景是这样的,程序并没有想我预期中⼀样运⾏。我了半天,没有到对a变量的修改或赋值操作。
最终,发现了藏在中间的c变量,因为是列表对象的引⽤赋值,所以直接修改了a变量。我将两个变量的地址打印出来,确实是这样的。
本来,查到这⾥基本上破案了。也应该没有后续了
但我上⽹查了⼀下,有⼈说⽤ =+就不会出现这种情况,我轻蔑的笑了,有什么区别么?不信邪的我试了⼀下。
这是什么原因呢?
深究:
根据我的推测,必然是+=操作改变的是原对象,=+操作返回了新的对象。尝试⼀下:
由此即可得知。
解惑:
那为什么Python会在 +=操作时,直接修改原对象。⽽=+操作却要返回新的对象呢?
简单推测⼀下,可能Python的作者认为,+=操作是要将后边的值加到⾃⾝上。⽽+则是两个值的运算操作。根据表达是也可以看出:
a +=
python怎么读的b # 这⾥只涉及两个变量,将b的内容直接加到a上
c = a + b # 这⾥涉及到了三个变量,将后两者内容相加后赋值给新的变量
最后,既然+=和=+的实现不同,那么同理列表的-=和=-、=和=、/=和=/的实现也必然不同。然⽽并⾮如此,list没有实现减法和除法的操作。但乘法确实也是这样。
⼤家在做运算符重载时候,也可以选取以上⽅法,如需了解更多python实⽤知识,点击进⼊PyThon学习⽹教学中⼼。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。