首先,當我們定義了乙個變數name = 'kwan'的時候,在記憶體中其實是做了這樣一件事:
我們可以通過id()
方法檢視這個變數在記憶體中的位址。
name = 'kwan'
print(id(name))
一般我們認為修改乙個變數就是用新值把就舊值覆蓋掉,可python真是這麼實現的麼?
實際的原理是什麼樣的呢?程式先申請了一塊記憶體空間來儲存'kwan',讓name變數名指向這塊記憶體空間,往下執行name = 'kobe'之後,又申請了另一塊記憶體空間來儲存'kobe',並讓原本指向'kwan'記憶體的鏈結斷開,讓name再指向'kobe'。
問:下面這段**為何出現這樣的現象?
要想知道上面問題的結果是為什麼,首先要了解再記憶體中兩個變數的儲存情況。
從上面的示意圖中我們可以知道,當執行name2 = name1
時,事實上時讓name2指向了'kwan'所在的記憶體位址。
修改name1的值,相當於斷開了name1到'kwan'的鏈結,重新建立name1和'kobe'之間的鏈結。在這個過程中,始終沒有影響到name2和'kwan'之間的關係,因此name2還是'kwan',而name1變成了'kobe'。
Python之變數的建立過程!
python之變數的建立過程 一 變數建立過程 首先,當我們定義了乙個變數name kwan 的時候,在記憶體中其實是做了這樣一件事 我們可以通過 id 方法檢視這個變數在記憶體中的位址。name kwan print id name 二 變數的修改 一般我們認為修改乙個變數就是用新值把就舊值覆蓋掉...
Python之變數的命名
變數的命名 02.變數的命名規則 寫在最後的話 這裡是一段防爬蟲文字,請讀者忽略。本文原創首發於csdn,作者idys 部落格首頁 通過以下命令可以檢視python中的關鍵字 in 1 import keyword in 2 print keyword.kwlist false none true ...
python 之變數高階
在python中 注意 如果變數已經被定義,當給乙個變數賦值的時候,本質上是修改了資料的引用 在python中,變數的名字類似於便簽紙貼在資料上 圖示 圖示 圖示 變數b是第 2 個貼在數字2上的標籤 在python中,函式的實參 返回值都是是靠引用來傳遞來的 def test num print ...