Python基礎 Python可變物件和不可變物件

2021-08-26 18:32:02 字數 749 閱讀 1162

python在heap中分配的物件分成兩類:可變物件和不可變物件。所謂可變物件是指,物件的內容是可變的,例如list。而不可變的物件則相反,表示其內容不可變。

一、不可變物件

由於python中的變數存放的是物件引用,所以對於不可變物件而言,儘管物件本身不可變,但變數的物件引用是可變的。運用這樣的機制,有時候會讓人產生糊塗,似乎可變物件變化了。如下面的**:

i = 73

i += 2

從上面得知,不可變的物件的特徵沒有變,依然是不可變物件,變的只是建立了新物件,改變了變數的物件引用。

看看下面的**,更能體現這點的。

#因為258是int物件,是不可變物件的。所以下面3個id的值都是一樣的,最後一句的結果也是為true

#有點奇怪的是為什麼在idle,和在指令碼執行的結果不太一樣。所以下面的**請在指令碼中執行。

print(id(258))

a = 258

print(id(a))

b = 258

print(id(b))

print(a is b)

二、對於可變物件其物件的內容是可以變化的。當物件的內容發生變化時,變數的物件引用是不會變化的。如下面的例子。

m=[5,9]

m+=[6]

python可迭代 python中可迭代物件有哪些

python中的可迭代物件有哪些?python中的可迭代物件有 列表 元組 字典 字串 常結合for迴圈使用 判斷乙個物件是不是可迭代物件 from collections import iterable isinstance list range 100 iterable isinstance s...

Python 可迭代物件

1.可迭代物件 以直接作用於for迴圈的資料型別有以下幾種 一類是集合資料型別 如 list tuple dict set str等 一類是generator,包括生成器和帶yield 的 generator function 這些可以直接作用於for迴圈的物件統稱為可迭代物件 iterable 2...

python可迭代物件

0 在python中只要是能用for in的,都是可迭代物件,讓我們看下定義 定義 我們已經知道可以對list tuple dict set str等型別的資料使用for in 的迴圈語法,會從其中依次拿到資料元素進行使用,我們把這樣的過程稱為遍歷,也叫迭代。所以我們把可以通過for in 這類語句...