變數參照

介紹過資料型態後,有一個重要的觀念大家務必要了解,那就是變數參照。

>>> result = 2

在這個例子中,result 這個變數被指派了 2 這個整數,但事實上,Python 並沒有讓 result 直接記錄著 2,而是找了一個可以儲存 2 這個整數的空間(容器),並讓 result 參考(指向)到了該空間,這好像是說result 其實只是一張標籤,上面寫了儲存物的儲存位置而已。

我們說變數 result 參照2 這個整數。

那參照的重要性在哪裡呢?我們來看以下的例子:

>>> result = 2
>>> result = 3.0
>>> result = 'hello'
>>> result = [1, 2, 3]

我們發現,一個變數不但能夠儲存不同型態的資料,還能夠隨時更換儲存的資料型態。

這在靜態語言中是不可能的事情,因為一個真正的容器只能裝合適的內容物,就像裝水要用水瓶一樣,靜態語言的變數就如同這些真正的容器,所以每個變數也都具有特定的型態並且只能裝該型態的資料,這也是為什麼靜態語言都需要進行變數宣告的原因。

而 Python 的變數並非真正的容器,他不過是張標籤,參照了某個裝資料的容器罷了(好像是隔層儲存!),當我需要他記錄別種形態的資料時,我們只要用一個合適的容器裝著該資料,並且改改標籤,變換一下參照的容器就好了。

這點有好也有壞,好處是,這對於程式設計師而言簡直是太方便了,減少了宣告的工作量,變數也能夠隨時更換所儲存資料的類型。但是缺點則是隔層的存取畢竟是慢一點點,還有更主要的,當有錯誤發生時,我們比較難發現。因此我們必須要非常清楚某個變數中目前參照的資料型態究竟是什麼!

results matching ""

    No results matching ""