Python變數賦值的秘密

來源:互聯網
上載者:User

標籤:lan   alt   等於   變數賦值   記憶體   不同   賦值   title   targe   

在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變數賦值的秘密

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.