Python immutable and mutable

主要內(nèi)容轉(zhuǎn)載自他人csdn博客
知識(shí)點(diǎn):python中,萬(wàn)物皆對(duì)象。python中不存在所謂的傳值調(diào)用,一切傳遞的都是對(duì)象的引用,也可以認(rèn)為是傳址。

一、可變對(duì)象和不可變對(duì)象

Python在heap中分配的對(duì)象分成兩類(lèi):可變對(duì)象和不可變對(duì)象。所謂可變對(duì)象是指,對(duì)象的內(nèi)容可變,而不可變對(duì)象是指對(duì)象內(nèi)容不可變。
不可變(immutable):int、字符串(string)、float、(數(shù)值型number)、元組(tuple)
可變(mutable):字典型(dictionary)、列表型(list)
e.g:

>>> i=73
>>> a=i
>>> i+=2
>>> i
75
>>> a
73
20140902164438953.png

如圖所示,當(dāng)i+=2時(shí),不可變對(duì)象的特征沒(méi)有變,變的只是創(chuàng)建了新對(duì)象,改變了變量的對(duì)象引用。同理我們創(chuàng)建新的變量a指向i時(shí),它也創(chuàng)建了自己的新對(duì)象,所以不受l的修改而修改


再舉一個(gè)可變對(duì)象的例子
e.g.:

>>> m=[5,9]
>>> a=m
>>> a
[5, 9]
>>> m.append(6)
>>> m
[5, 9, 6]
>>> a
[5, 9, 6]
20140902165215796.png

這里我們對(duì)list m做了修改,因?yàn)閘ist為可變對(duì)象,所以它沒(méi)有創(chuàng)建新對(duì)象和改變對(duì)象引用,它只是修改了引用對(duì)象。同時(shí)我們讓一個(gè)新變量a指向m,因?yàn)閙的引用對(duì)象發(fā)生了改變,所以a的引用對(duì)象也發(fā)生了改變。


這里注意區(qū)分兩種可變不可變

immutable and mutable指的是上面的講解,而有時(shí)候說(shuō)list可變而tuple不可變指的是tuple一旦初始化就不能修改,它沒(méi)有像list一樣的append(),insert()這樣的方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 個(gè)人筆記,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,952評(píng)論 0 5
  • http://python.jobbole.com/85231/ 關(guān)于專(zhuān)業(yè)技能寫(xiě)完項(xiàng)目接著寫(xiě)寫(xiě)一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,828評(píng)論 1 118
  • 一、python 變量和數(shù)據(jù)類(lèi)型 1.整數(shù) Python可以處理任意大小的整數(shù),當(dāng)然包括負(fù)整數(shù),在Python程序...
    績(jī)重KF閱讀 2,025評(píng)論 0 1
  • 最近在慕課網(wǎng)學(xué)習(xí)廖雪峰老師的Python進(jìn)階課程,做筆記總結(jié)一下重點(diǎn)。 基本變量及其類(lèi)型 變量 在Python中,...
    victorsungo閱讀 1,963評(píng)論 0 5
  • 茹萍最近瘋狂地迷上了購(gòu)物。 不是淘寶天貓京東,而是實(shí)體店,盡管現(xiàn)在每天都累得像狗一樣,可是只要有一點(diǎn)點(diǎn)閑暇功夫,如...
    時(shí)時(shí)糖果雨閱讀 379評(píng)論 0 1

友情鏈接更多精彩內(nèi)容