python 共享引用

2021-05-27 20:59:10 字數 522 閱讀 5608

在上一節中,我給大家介紹了單個變數被賦值引用多個物件的情況。然而,單個(乙個)物件被多個變數引用又是怎麼一回事兒呢?

a = 3

b = a

先上圖(圖1)吧,大家一看就一目了然了:

變數名和物件,在執行賦值語句b = a之後,變數a,b都指向了物件3的記憶體空間.

假設這時執行 a = 'python', a將指向剛建立的字串物件。

我們再來試試這種情況:

>>>list_1 = [1,2,3,4]

>>>list_2 = list_1

>>>list_2

>>>list_1[0] = 'python'

>>>list_2

result:

[1,2,3,4]

['python',2,3,4]

或許這種結果並不是我們想要的。如果你不想要這樣的現象發生,需要python物件拷貝,而不是建立引用。

如:

python共享引用

對於可變值 比如列表 當多個變數指向同乙個可變值時,它們就會共享同乙個引用 它們都指向同乙個值。通過其中乙個變數對值所作出的修改會影響到其他所有的變數,原因就是只有乙個共享的副本。mike khakis dress shirt jacket mr dawson mike honey mike hon...

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 第三條語句建立了新的...