對於可變值(比如列表),當多個變數指向同乙個可變值時,它們就會共享同乙個引用:它們都指向同乙個值。通過其中乙個變數對值所作出的修改會影響到其他所有的變數,原因就是只有乙個共享的副本。
mike=["khakis","dress shirt","jacket"]
mr_dawson=mike
honey=mike
honey[2]="red sweater"
print(mike)
print(mr_dawson)
print(honey)
輸出:
但是切片就不會有這個效果,因為它得到的永遠都是副本。
mike=["khakis","dress shirt","jacket"]
honey=mike[:]
honey[2]="red sweater"
print(honey)
print(mike)
輸出: python 共享引用
在上一節中,我給大家介紹了單個變數被賦值引用多個物件的情況。然而,單個 乙個 物件被多個變數引用又是怎麼一回事兒呢?a 3 b a 先上圖 圖1 吧,大家一看就一目了然了 變數名和物件,在執行賦值語句b a之後,變數a,b都指向了物件3的記憶體空間.假設這時執行 a python a將指向剛建立的字...
Python共享引用和原處修改
在python中,變數總是乙個指向物件的指標,而不是可改變的記憶體區域的標籤 給乙個變數賦乙個新的值,並不是替換了原始物件,而是讓這個變數去引用完全不同的乙個物件。實際的效果就是對乙個不支援原處修改的變數賦值,僅僅會影響那個被賦值的變數。但對於支援在原處修改的物件,共享引用時需倍加小心,因為對乙個變...
Pyhton 共享引用
首先 a 3 b a b a會使python建立變數b。變數a正在使用,並且a這裡沒有被賦值,所以a被替換成其引用的物件3,從而b也成為這一物件的引用。a和b指向了相同的記憶體空間。這在python中叫做共享引用 多個變數名引用了同乙個物件。下一步 a 3 b a a spam 第三條語句建立了新的...