I had learned that n = n + v and n += v are the same. Until this;
def assign_value(n, v): n += v print(n) l1 = [1, 2, 3] l2 = [4, 5, 6] assign_value(l1, l2) print(l1) The output will be:
[1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] Now when I use the expanded version:
def assign_value(n, v): n = n + v print(n) l1 = [1, 2, 3] l2 = [4, 5, 6] assign_value(l1, l2) print(l1) The output will be:
[1, 2, 3, 4, 5, 6] [1, 2, 3] Using the += has a different result with the fully expanded operation. What is causing this?



__add__and__iadd__can be implemented independently and differently.