一:比如
a = [['',0]] * 5
對第乙個list中的數字進行賦值。**如下:
a[0][1] = 5
列印則會出現以下情況:
>>> print a
[['', 5], ['', 5], ['', 5], ['', 5], ['', 5]]
原因是:a = [['',0]] * 5 ,只是對['',0]進行了淺拷貝,也就是說[['',0]] * 5拷貝的只是引用,所以對乙個賦值其他的引用也會相應的改變,於是出現上面的情況。
nnd,弄了乙個多小時。
二:
def tp(a):
a[0] = 1
if __name__ == '__main__':
a = [2, 3, 4]
print a
tp(a)
print a
結果為:
[2, 3, 4]
[1, 3, 4]
而換成:
def tp(a):
a =1
if __name__ == '__main__':
a = [2, 3, 4]
print a
tp(a)
print a
結果變成:
[2, 3, 4]
[2, 3, 4]
三:>>> a = [[1, 2], [2, 3]]
>>> b = a[:]
>>> c = a
>>> id(a)
182980812952
>>> id(b)
182980796288
>>> id(c)
182980812952
從中可以看出b為賦值,而c為引用,在函式引數中要注意這種情況。
注意python中的引用
mylist shoplist 這裡是引用,當shoplist改變時,mylist也跟著改變,因為他們指向的是同一片記憶體。del shoplist 0 print shoplist is shoplist print mylist is mylist 打出來的內容都是一樣的。當你建立乙個物件並將它...
python 類中引用資料的問題
在python類中引用資料的時候,我們會發現,傳入 init 的引數有時候可以在類中直接呼叫,等同於用self引用 但import到其他py檔案後,就顯示無法找到該函式了。原因在於,在init函式中有可能在if name main 後定義了該同名引數,所以在執行原檔案的時候,存在這一變數,但是當im...
Python中的變數引用物件需注意的幾點
分類 python 55 0 普通引用 python中,變數的作用僅僅是乙個標識,只有賦值後才被建立,它可以引用任何型別的物件,而且在引用之前必須賦值。賦值後的變數指向響應的物件,擁有該物件的空間。型別屬於物件,但是不是變數。python view plain copy a 3 a science ...