1. 程式人生 > 實用技巧 >變數進階(理解)

變數進階(理解)

目標

• 變數的引用

•可變和不可變型別

•區域性變數和全域性變數

01.變數的引用

•變數 和 資料 都是儲存在 記憶體 中的

•在 python 中 函式 的 引數傳遞 以及 返回值 都是靠 引用 傳遞的

1.1引用的概念

在 python 中

變數資料 是分開儲存的

資料 儲存在記憶體中的一個位置

變數 中儲存著資料在記憶體中地址

變數 中記錄資料的地址,就叫做 引用

•使用 id() 函式可以檢視變數中儲存資料所在的 記憶體地址

注意:如果變數已經被定義,當給一個變數賦值時,本質上是 修改了資料的引用

變數 不再 對之前的資料引用

變數 改為 對新賦值的資料引用

1.2 變數引用 的示例

在 python 中,變數的名字類似於 便籤紙 貼在 資料

•定義一個整數變數 a ,並且賦值為 1

•將變數 a 賦值為 2

•定義一個整數變數 b,並且將變數 a 的值賦值給 b

變數b是第二個貼在數字2上的標籤

1.3 函式的引數和返回值的傳遞

def test(num):
    print("在函式內部%d對應的記憶體是%d" %(num,id(num)) )
    # 1.定義一個字串變數
    result = "hello"
    print("函式要返回資料的記憶體地址是%d" % id(result))

    # 2.將字串變數返回
    return
result # 1.定義一個數字的變數 a = 10 print("a變數儲存資料的記憶體地址是%d" % id(a)) # 2.呼叫 test 函式,本質上傳遞的是實參儲存資料的引用,而不是實參儲存的資料 # 注意:如果函式有返回值,但是沒有定義變數接收,程式不會報錯,但是無法獲得返回結果 r=test(a) print("%s的記憶體地址是%d" %(r,id(r)))

02. 可變和不可變型別

不可變型別,記憶體中的資料不允許被修改

  數字型別 int,bool,float,complex,long(2.x)

  字串 str

  元組 tuple

可變型別,記憶體中的資料可以被修改

  列表 list

  字典 dict