Python函数参数为列表问题
def ADD(a):
print(3,a,hex(id(a)))
a.remove(2)
print(3,a,hex(id(a)))
a=a.append(10)
print(3,a,hex(id(a)))
return a
a=[1,2,3]
print(1,a,hex(id(a)))
b=ADD(a)
print(2,a,hex(id(a)))
print(2,b,hex(id(b)))
函数传参的时候,如果参数是列表,那么相当于是引用了。即形参和实参用的是同一个地址的内容,一旦修改也是直接修改对应地址的内容。
而在Python中,一旦形参a重新进行赋值操作,不论赋值为什么,地址都将改变。
但是这个时候,实参a,则不会相应更改,因为它所指向的地址还在原来的位置。
fighting