Python引用型別和值型別的區別與使用解析

2022-09-28 03:03:13 字數 941 閱讀 7383

python資料型別分為值型別和引用型別, 下面我們看下它們的區別:

www.cppcns.com值型別:

物件本身不允許修改,數值的修改實際上是讓變數指向了乙個新的物件

包含:字串、元組、數值,本身不允許被修改

引用型別:

物件本身可以修改,

包含:列表、字典,本身允許修改

例子:a = 11

print id(a)

a = 16

print id(a)

結果:43525053l

57628312l

修改值型別的值,只是讓它指向乙個新的記憶體位址,並不會改變變數b的值

l = [1,2,3]

print程式設計客棧 id(l)

l[0] = 0

print id(l)

結果:19775281l

19775281l

修改引用型別的值,因為listb的位址和lista的一致,所以也會被修改

一般只為了複製值,可以使用分片操作

listb = lista[:]

下面在單獨看下python的值型別和引用型別

值型別:

包含:字串、元組、數值,本身不允許被修改

引用型別:

包含:列表、字典,本身允許修改

a = 2

b = a

a = 3

修程式設計客棧改值型別的值,只是讓它指向乙個新的記憶體位址,並不會改變變數b的值

lista = [1,2]

listb = lista

lista[0] = 3

修改引用型別的值,因為listb的位址和的一致,所以也會被修改

一般只為了複製值,可以使用分片操作

listb = lista[:]

總結本文標題: python引用型別和值型別的區別與使用解析

本文位址:

引用型別和值型別

c 是一種型別安全的語言。每乙個變數都要求定義為乙個特定的型別,並且要求儲存在變數中的值只能是這種型別的值。變數既能儲存值型別,也可以儲存引用型別,還可以是指標。這一課將講述前兩種型別,關於指標的討論我們將在下一課中進行。下面是關於值型別和引用型別不同點的概論 如果乙個變數v儲存的是值型別,則它直接...

引用型別和值型別

c 中值型別和引用型別作為方法引數傳遞的時候其實都可以說是 值 的傳遞,只不過這裡的 值 指代的東西有所區別。當方法的引數為值型別時,方法傳遞的是值本身的值。當方法的引數為引用型別時,方法傳遞的則是應用型別的引用的位址,也就是引用型別位址在棧上的值。舉個引用型別作為引數傳遞的例子 static vo...

值型別和引用型別

為了更好地說明兩種型別之間的區別,借用如下的 來說明 值型別引用型別 記憶體分配地點 分配在棧中 分配在堆中 效率效率高,不需要位址轉換 效率低,需要進行位址轉換 記憶體 使用完後,立即 使用完後,不是立即 等待gc 賦值操作 進行複製,建立乙個同值新物件 只是對原有物件的引用 函式引數與返回值 是...