从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这篇文章主要介绍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 += b # 这里只涉及两个变量,将b的内容直接加到a上
c = a + b # 这里涉及到了三个变量,将后两者内容相加后赋值给新的变量
最后,既然+=和=+的实现不同,那么同理列表的-=和=-、*=和=*、/=和=/的实现也必然不同。然而并非如此,list没有实现减法和除法的操作。但乘法确实也是这样。
以上是Python中运算符+=表示什么的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图