歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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

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

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

一、不可變對象

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

  1. i = 73  
  2. i += 2  

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

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

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

二、對於可變對象

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

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

Copyright © Linux教程網 All Rights Reserved