分享

python中x+=y和x=x+y的区别_x+=y是什么意思

 nxhujiee 2023-04-26 发布于宁夏

问题: python中x+=y和x=x+y的区别是什么?
解答:
1、对于不可变对象而言,没有区别,不论是x+=y还是x=x+y,新的x值都是保存在新的内存中,与原x不同。
在这里插入图片描述

2、对于可变对象而言,x=x+y产生的新的x保存在新的内存中,而x+=y是原地操作。另外对于列表而言,原地操作也可以使用x[:]=x+y,这意味着将原来x中的每个元素值改变,而不改变x的内存地址。
在这里插入图片描述
原因:
+调用的是add方法,add方法会将相加之后的值赋值给新变量。
+=调用的是iadd方法,iadd方法会进行原地操作。不可变类型的变量的+=不进行原地操作的原因是不可变类型是没有iadd方法的,因此会重载add方法。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多