社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

干货丨你知道Python中a += b和a = a + b的结果是不一样的吗?

python • 4 年前 • 156 次点击  

可变类型和不可变类型

想要了解a += b和a = a + b结果是不是一样。要先知道什么是可变变量和不可变变量。

Python中

  • 不可变类型:数字,字符串,元组

  • 可变类型:列表,字典

不可变类型运算举例

不可变+=


不可变=+


不可变类型在进行+=和=+之后结果是一样的。

可变类型运算举例

可变+=


可变类型+=情况

可变=+


可变类型a=a+b情况

通过上图对比我们发现可变类型的变量在进行a += b和a = a + b时结果是不一样的。在进行+=操作时,a1和a2值同时改变,但是在进行先加后赋值时a1和a2不能同时改变。

大家一定要记住上面的结论

原理addiadd 的区别

  • add 方法接收两个参数,返回它们的和,两个参数的值均不变。

  • iadd 方法接收两个参数,第一个参数的值改变

可变类型使用加号操作(即a=a+b),调用add会返回一个新的对象,原来的对象不变。


示意图如下:


a1 = a1 + b 后a1会指向新的结果,但是a2指向不变


可变类型使用+=操作(即a+=b),调用iadd方法,第一个参数的值改变,即a1指向的本身内容发生改变,指向位置不发生改变。


示意图如下:


a1 += b后a1指向的内容发生改变,指向的位置不发生改变,所以a2的内容也会跟着a1一起改变



*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

觉得不错,点个“在看”然后转发出去

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51153
 
156 次点击