In python, for example if I write:
def f(x,y):
x.append(y) #1
x += [y] #2
x = x+[y] #3
return x
x=[]
y=3
z=f(x,y)
Only the operations 1 and 2 modify the value of x (that will be [3,3]) Why? There's a general rule?
In python, for example if I write:
def f(x,y):
x.append(y) #1
x += [y] #2
x = x+[y] #3
return x
x=[]
y=3
z=f(x,y)
Only the operations 1 and 2 modify the value of x (that will be [3,3]) Why? There's a general rule?
Python's list
class defines __add__
, which controls the behaviour of x + y
, and it defines __iadd__
, which controls the behaviour of x += y
. The implementations of these specify that x + y
creates a new list, and x += y
modifies the list x
. Presumably these seemed like the most likely intention of people using those operations.