2016-12-26 45 views
-2

我很難理解爲什麼,當調用text函數時,num1受到影響,而num2未更改?python可變/不可變函數

def text(null1, null2) : 
    null1 += [7] 
    null2 = [8] 

num1 = [2,3] 
num2 = [4,5] 
text(num1,num2) 
print(num1) 
print(num2) 
+1

因爲'a + = b'與'a = a + b'不一樣。 – BrenBarn

+0

當您追加時,它將被追加到同一個列表中,但是當您分配時,會創建一個新列表。 –

回答

1
null1 += [7] 

修改列表null1。我是你的情況它修改了你作爲參數提交的名單num1

但是:

null2 = [8] 

創建一個新的列表。在函數內部,它創建一個新的局部變量。因此,它不會改變num2