在python中,例如,如果我写:
def f(x,y):
x.append(y) #1
x += [y] #2
x = x+[y] #3
return x
x=[]
y=3
z=f(x,y)
只有操作1和2修改x的值(即[3,3]) 为什么? 有一般规则吗?
答案 0 :(得分:0)
Python的list
类定义__add__
,它控制x + y
的行为,并定义__iadd__
,它控制x += y
的行为}。这些实现指定x + y
创建新列表,x += y
修改列表x
。据推测,这似乎是人们使用这些操作的最可能的意图。