天天看點

Python學習(1)--變量與表達式Python學習(1)--變量與表達式

1.python中變量在記憶體中與java的差別

在python中當變量的内容發生改變時,python會在記憶體中重新開辟一個區域存儲這個内容;而在java中變量指向記憶體中的一片區域,當變量内容發生改變時,隻是目前值覆寫掉其在記憶體中原來的值,并不會重新開辟出另一片記憶體來存儲目前值.以下是python代碼來證明以上所述:

<b>[python]</b> view plain copy

a=123

print(id(a))

a=456

運作結果如下:

Python學習(1)--變量與表達式Python學習(1)--變量與表達式

id是變量在記憶體中的位址,通過列印id,可以發現,當變量的值發生改變時,其在記憶體中的位址也相應改變,這說明python為變量a重新開辟出了一塊記憶體存儲改變後的值。

在python中兩個不同的變量,當他們的值相同時,保守的說,兩個變量所指向的位址空間很有可能是一樣的;而在java中兩個不同的變量,即使是内容相同,java也會開辟出兩個不同的記憶體區域來存儲這兩個變量.以下是python代碼:

a=123;b=123

print(id(a));print(id(b))

以下是運作結果:

Python學習(1)--變量與表達式Python學習(1)--變量與表達式

可以發現變量a和變量b是完全兩個不同的變量,但是變量a和變量b的内容是相同的,列印id發現他們在記憶體中存儲在同一片區域,進而證明了以上所述。