1. 程式人生 > 實用技巧 >圖解Python變數與賦值(轉)

圖解Python變數與賦值(轉)

原文:https://blog.csdn.net/zv3e189os5c0tsknrbcl/article/details/78301311


學過C的都知道,給變數賦值時,需要先指定資料型別,同時會開闢一塊記憶體區域,用於儲存值,例如:

int a = 1;

a 就是記憶體空間中的一小塊區域,就像是一個大房間裡面的一個小盒子,賦值就是把整數1裝載到盒子裡面。

現在給變數a重新賦值 a = 2;
盒子依然是那個盒子,也就是說記憶體地址沒有變,只是該段記憶體中的值變了,變成了2。

再來看:int b = a;
當把變數a賦值給另外一個變數b時,相當於把值拷貝了一份傳遞給變數b,b是新開闢的一段記憶體區域


而在Python中,“變數”的嚴格叫法是“名字(name)”,也可以理解為標籤,就像我們人的姓名一樣,名字就是掛在人身上的一個標籤。

在Python中,給變數賦值就是相當於給物件貼標籤,就像我們給人取名字一樣,變數本身是沒有任何意義的,它沒有型別資訊,真正的資訊都在物件身上。

如果寫一個:a = 1
Python內部首先會分配一段記憶體空間用於建立整數物件1,然後給這個1貼上名為a的標籤。

再執行: a=2
Python接著會在另一塊記憶體區域建立整數物件2,然後把標籤a從1身上撕下來貼在2身上,此時,我們沒法再通過a來得到1這個值了。

現在把名字a賦值給另外一個名字b:b = a
相當於在剛才的2身上又貼了一個新的標籤b,注意,這裡和C語言是完全不一樣的,定義b的時候不需要分配記憶體空間,這樣我們既可以通過a來訪問2也可以通過b來訪問2,訪問的都是同一個物件,就好比我們給寶寶取名時既有小名也有大名,其實叫的都是同一個人。

雖然我們通常在Python中還是用”變數”的叫法(因為在程式語言中這是一種通用叫法),但是我們需要理解Python中的變數不同於其他語言,變數只是一個名字。