list .__ iadd__和list .__ add__的不同行为

问题描述

__iadd__更改列表,然后__add__返回一个 列表,如所示。

x += y第一次尝试调用的表达式__iadd__,如果失败,将__add__在赋值之后调用(请参见Sven的评论进行较小的更正)。从那时list起,__iadd__它就完成了这一点’o突变魔术。

解决方法

考虑以下代码:

>>> x = y = [1,2,3,4]
>>> x += [4]
>>> x
[1,4,4]
>>> y
[1,4]

然后考虑一下:

>>> x = y = [1,4]
>>> x = x + [4]
>>> x
[1,4]

为什么这两个有区别?

(是的,我尝试搜索此内容)。

相关文章

猜你在找的编程问答相关文章

在Pandas数据框中旋转数据表
如何获得浮点序列中的下一个值?
获取Instagram粉丝
在批处理结束时检测到不可提交的事务。交易回滚
将一个文本文件文件夹与一个单元格中的每个内容合并为一个CSV文件
在使用JSON数据时,如何防止我的应用程序意外崩溃,“关闭”,而代之以处理异常?
JDBC批处理INSERT,返回ID
具有多个表的复杂INNER JOIN查询的回显结果