mylist=shoplist #這裡是引用,當shoplist改變時,mylist也跟著改變,因為他們指向的是同一片記憶體。
del shoplist[0]
print 'shoplist is ',shoplist
print 'mylist is ',mylist
打出來的內容都是一樣的。當你建立乙個物件並將它賦值給乙個變數時,這個變數僅僅引用那個物件,而不是表示這個物件本身!
在看下面的:
mylist=shoplist[:]#make a copy by doing a full slice,這就有建立了乙個新的物件並將其賦值給變數mylist
del mylist[0] 現在改變其中的乙個另乙個變數就不會跟著改變了!
注意python中的引用問題
一 比如 a 0 5 對第乙個list中的數字進行賦值。如下 a 0 1 5 列印則會出現以下情況 print a 5 5 5 5 5 原因是 a 0 5 只是對 0 進行了淺拷貝,也就是說 0 5拷貝的只是引用,所以對乙個賦值其他的引用也會相應的改變,於是出現上面的情況。nnd,弄了乙個多小時。二...
Python中的變數引用物件需注意的幾點
分類 python 55 0 普通引用 python中,變數的作用僅僅是乙個標識,只有賦值後才被建立,它可以引用任何型別的物件,而且在引用之前必須賦值。賦值後的變數指向響應的物件,擁有該物件的空間。型別屬於物件,但是不是變數。python view plain copy a 3 a science ...
python中的引用
spam 42 cheese spam spam 20 print spam print cheese 輸出結果為 將42賦給spam變數,然後拷貝spam中的值,將它賦給變數cheese,當稍後改變spam的值不會影響到cheese的值,這是因為spam和cheese是兩個不同的變數,儲存了不同的...