這篇文章將為大家詳細(xì)講解有關(guān)python不可變類型指的是什么,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
成都創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括壽陽網(wǎng)站建設(shè)、壽陽網(wǎng)站制作、壽陽網(wǎng)頁制作以及壽陽網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,壽陽網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到壽陽省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
python中有可變對象和不可變對象,可變對象:list,dict.不可變對象有:int,string,float,tuple.
python不可變對象
int,string,float,tuple
先來看一個(gè)例子
def int_test(): i = 77 j = 77 print(id(77)) #140396579590760 print('i id:' + str(id(i))) #i id:140396579590760 print('j id:' + str(id(j))) #j id:140396579590760 print i is j #True j = j + 1 print('new i id:' + str(id(i))) #new i id:140396579590760 print('new j id:' + str(id(j))) #new j id:140396579590736 print i is j #False if __name__ == '__main__': int_test()
有i和j倆個(gè)變量的值為77,通過打印77的ID和變量i,j在內(nèi)存中的id我們得知它們都是指向同一塊內(nèi)存。所以說i和j都是指向同一個(gè)對象的。然后我們修改j的值,讓j的值+1.按道理j修改之后應(yīng)該i的值也發(fā)生改變的,因?yàn)樗鼈兌际侵赶虻耐粔K內(nèi)存,但結(jié)果是并沒有。因?yàn)閕nt類型是不可變類型,所有其實(shí)是j復(fù)制了一份到新的內(nèi)存地址然后+1,然后j又指向了新的地址。所以j的內(nèi)存id發(fā)生了變化。
內(nèi)存分配情況如下:
關(guān)于python不可變類型指的是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。