Python變數賦值的秘密

2021-08-06 03:29:26 字數 794 閱讀 9721

在python中,我們令乙個變數等於另外乙個變數時,並不是把值傳遞給它,而是直接把指向的位址更改了。我們想要檢視乙個變數在記憶體中的位址,可以通過id(變數) 來檢視。我們通過乙個小例子來看看這個有趣的過程。

>>> x = 12

>>> y= 13

>>> id(x)

1865402384

>>> id(y)

1865402416

>>> x = y

>>> id(x)

1865402416

>>> id(y)

1865402416

首先給x變數賦值為12,y變數賦值為13,我們用id(變數)分別檢視x和y在記憶體中的位置。上面顯示分別為1865402384和1865402416。然後我們令x = y後,再檢視一下它們在記憶體中的位置,發現x 和 y都指向了1865402416。由此可見,在python中,我們賦值的方式和c語言有所不同,c語言直接更改x那塊記憶體裡面的值,而python直接改變x的指向,這讓我想起了指標。

我們接著嘗試一下,繼續在這裡輸入下面的**

>>> y = 12

>>> id(y)

1865402384

天!發生了什麼??y在記憶體中的位址又變成1865402384了,準確說,y又指向了1865402384這塊記憶體區域了。這樣一看,和c語言的指標還真的很像呢。

Python變數賦值的秘密

在python中,我們令乙個變數等於另外乙個變數時,並不是把值傳遞給它,而是直接把指向的位址更改了。我們想要檢視乙個變數在記憶體中的位址,可以通過id 變數 來檢視。我們通過乙個小例子來看看這個有趣的過程。x 12 y 13 id x 1865402384 id y 1865402416 x y i...

Python變數賦值的秘密分享

在python中,我們令乙個變數等於另外乙個變數時,並不是把值傳遞給它,而是直接把指向的位址更改了。我們想要檢視乙個變數在記憶體中的位址,可以通過id 變數 來檢視。我們通過乙個小例子來看看這個有趣的過程。x 12 程式設計客棧y 13 id x id y x y id x id y 首先給x變數賦...

python變數賦值

從python2.0開始 等號可以和乙個算術操作符組合在一起,將計算結果重新賦值給左邊的變數,這被稱為增量賦值,類似下面的語句 x x 1 現在可以被寫作 x 1增量賦值相對普通賦值不僅僅是寫法上的改變,最有意義的變化是第乙個物件,金盃處理一次,可變物件會被就地修改 無修拷貝引用 不可變物件則和a ...