歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python基礎:Python可變對象和不可變對象

Python基礎:Python可變對象和不可變對象

日期:2017/3/1 10:11:09   编辑:Linux編程

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

  • 不可變對象:int,string,float,tuple
  • 可變對象 :list,dictionary

一、不可變對象

由於Python中的變量存放的是對象引用,所以對於不可變對象而言,盡管對象本身不可變,但變量的對象引用是可變的。運用這樣的機制,有時候會讓人產生糊塗,似乎可變對象變化了。如下面的代碼:

  1. i = 73
  2. i += 2

從上面得知,不可變的對象的特征沒有變,依然是不可變對象,變的只是創建了新對象,改變了變量的對象引用。

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

  1. #因為258int對象,是不可變對象的。所以下面3個id的值都是一樣的,最後一句的結果也是為True
  2. #有點奇怪的是為什麼在IDLE,和在腳本執行的結果不太一樣。所以下面的代碼請在腳本中執行。
  3. print(id(258))
  4. a = 258
  5. print(id(a))
  6. b = 258
  7. print(id(b))
  8. print(a is b)

二、對於可變對象

其對象的內容是可以變化的。當對象的內容發生變化時,變量的對象引用是不會變化的。如下面的例子。

  1. m=[5,9]
  2. m+=[6]

Copyright © Linux教程網 All Rights Reserved