最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 如何理解Python中+=是什么意思?怎么用?

    正文概述    2020-05-11   241

    这个运算符还是学习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中+=是什么意思?怎么用?

    本来,查到这里基本上破案了。也应该没有后续了

    但我上网查了一下,有人说用 =+就不会出现这种情况,我轻蔑的笑了,有什么区别么?不信邪的我试了一下。

    如何理解Python中+=是什么意思?怎么用?

    如何理解Python中+=是什么意思?怎么用?

    这是什么原因呢?

    深究:

    根据我的推测,必然是+=操作改变的是原对象,=+操作返回了新的对象。尝试一下:

    如何理解Python中+=是什么意思?怎么用?

    如何理解Python中+=是什么意思?怎么用?

    如何理解Python中+=是什么意思?怎么用?

    如何理解Python中+=是什么意思?怎么用?

    由此即可得知。

    解惑:

    那为什么Python会在 +=操作时,直接修改原对象。而=+操作却要返回新的对象呢?

    简单推测一下,可能Python的作者认为,+=操作是要将后边的值加到自身上。而+则是两个值的运算操作。根据表达是也可以看出:

    a += b # 这里只涉及两个变量,将b的内容直接加到a上

    c = a + b # 这里涉及到了三个变量,将后两者内容相加后赋值给新的变量

    最后,既然+=和=+的实现不同,那么同理列表的-=和=-、*=和=*、/=和=/的实现也必然不同。然而并非如此,list没有实现减法和除法的操作。但乘法确实也是这样。

    大家在做运算符重载时候,也可以选取以上方法,如需了解更多python实用知识,点击进入起源地模板网教学中心


    起源地下载网 » 如何理解Python中+=是什么意思?怎么用?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元