Difference Between x = x + y and x += y in Python
We often use
x += y instead of
x = x + y. So, are they same or different? Let’s Find it here.
[1, 2, 3] [1, 2, 3]
[1, 2, 3] [1, 2]
So here we find that both codes are almost similar but still there are difference in the outputs. So the reason behind this is that for many types of objects,
x += y will modify the object referred to by
x in-place, whereas
x = x + y will create a new object and reassign
x to it. This distinction is important if you still have another reference to the object somewhere like in this case
another_a is another reference to the object.
However, many objects such as numbers and strings are “immutable” – they can’t be modified in-place – and for those objects,
x += y and
x = x + y will typically do exactly the same thing. But if you write your own class you can customize what
+= do when used with objects of that class, and you can make them do completely different things if you really want to.