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,則不會相應更改,因爲它所指向的地址還在原來的位置。