Python中 为何`i+=x` 和`i=i+x`有不相等的情况

对于对象x,操作符+的定义在其对象的__add__方法中已经定义好了。操作符+=在__iadd__方法中也以定义好了,如果没有定义__iadd__方法,解释器会将x+=y,翻译为x = x+y进行运算。具体到本问题而言,list对象中两个list相加会创建新的list。而list1 += list2 相当于在原来的list1上进行修改,即将list2中的元素依次append到list1的尾部。没事儿多看看源码。
■网友
i=i+x相当于i=i.__add__(x)i+=x相当于i=i.__iadd__(x)调用的方法不同,可以参考反向运算和增量赋值
■网友
想到了js里的push跟concat


    推荐阅读