關鍵:
在python中的分為 可變資料物件(列表,字典) 和 不可變資料物件(整型,字串,浮點型,元祖)。
可變的意思是引用之間會相互影響,不可變則不會相互影響。
如果是可變物件的話就算是函式引數傳遞也會相互影響,即函式內部對物件的操作也會影響函式外部的
l = [1,2,3]
def func(t):
t[0] = 100
func(l)
print(l)
out: [100, 2, 3]
具體的:
(引用和物件的理解)
(淺拷貝和深拷貝)
拷貝python物件,淺拷貝和深拷貝
物件賦值實際上是簡單的物件引用。也就是說建立乙個物件然後賦值給另乙個變數的時候,python並沒有拷貝這個物件,而是拷貝了這個物件的引用。淺拷貝 淺拷貝的是物件本身,但是內容是原來物件的引用。拷貝物件本身是新的但是內容不是新的 拷貝物件的方式 來看 import copy a a b c 1,2,3...
python 引用,淺copy和深拷貝
l 1,2,3,4 g l g 1 3 上面這個方法是引用複製,因為g和l是同乙個東東,輸出結果是 g 1,2,3,3 l 1,2,3,3 如果想複製所有的生成乙個新的list,那麼使用下面的方法 g data for data in l 這樣就全部的值都copy 過來 現在你再g 1 5,g和l ...
python 引用,淺拷貝,深拷貝
引用 當物件是不可變型別的時候,int float double string tuple 純tuple 遇到 引用 問題時,雖然起初兩個變數指向同乙個記憶體位址,但是改變了其中乙個值,並不會影響另外乙個 會重新開闢記憶體位址 當物件是可變型別的時候,list dic,遇到 引用 問題,會一直共享一...