久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python 的不可變對象

python 的不可變對象

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-08 04:41:13 1699389673

python中一切皆對象。在Python中不存在所謂的值傳遞調(diào)用,一切傳遞都是對象的引用,也可認為是傳址。

python中,對象分為可變(mutable)和不可變(immutable)兩種類型,元組(tuple)、數(shù)值型(number)、字符串(string)均為不可變對象,而字典型(dictionary)和列表型(list)的對象是可變對象。

不可變對象

見一個例子,分析不可變對象的特點

python內(nèi)置id()函數(shù),用于返回對象的唯一標(biāo)識(identity)。id()返回的是十進制,對象實際內(nèi)存地址為hex(id(object)),本文中將id()與hex(id())等價使用。

>>>a=1#將變量a與內(nèi)存中的值為1的內(nèi)存綁定在一起

>>>a=2#將變量a與內(nèi)存中值為2的內(nèi)存綁定在一起,并不是修改原來a綁定的內(nèi)存中的值,

#這時,原來的這個值為1的內(nèi)存地址的引用次數(shù)減一,當(dāng)引用計數(shù)為0時,內(nèi)存地址被回收

>>>b=a#變量b綁定與a一樣的內(nèi)存

>>>id(b),id(a)#打印a,b的綁定的內(nèi)存地址

(1972461824,1972461824)

>>>b=3#創(chuàng)建一個內(nèi)存值為3的內(nèi)存地址與變量名字b進行綁定。這時,a還是指向值為2的內(nèi)存地址

>>>a,b

(2,3)

>>>id(b),id(a)#打印a,b的綁定的內(nèi)存地址

(1972461856,1972461824)

>>>x=1

>>>y=1

>>>z=1

>>>xisy

True

>>>yisz

True

>>>id(x),id(y),id(z)

(1972461792,1972461792,1972461792)

從第二個例子可看出因為整數(shù)為不可變對象,x,y,z在內(nèi)存中均指向一個值為1的內(nèi)存地址。

不可變對象最大的優(yōu)點便是減少重復(fù)的值對內(nèi)存空間的占用。

缺點便是如第一個例子中所示,我要修改這個變量綁定的值,如果內(nèi)存中沒有存在該值的內(nèi)存塊,那么必須重新開辟一塊內(nèi)存,把新地址與變量名綁定。

而不是修改變量原來指向的內(nèi)存塊的值,這回給執(zhí)行效率帶來一定的降低。

原來的內(nèi)存塊會因變量與其他內(nèi)存塊綁定而引用次數(shù)減1.

以上內(nèi)容為大家介紹了python的不可變對象,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
python中remove與del的區(qū)別是什么?

python中,有很多函數(shù)的作用是一樣的,例如:python中remove與del都會刪除元素,但是還有有區(qū)別的。本文主要介紹python中remove與del的區(qū)別:de...詳情>>

2023-11-08 07:34:01
Python中如何進行字符串比較大小?

在Python中,我們會經(jīng)常使用到字串符,用于編碼碼字。有的時候會需要比較字符串大小。本文主要介紹Python字符串比較大小方法:字符串的比較是比...詳情>>

2023-11-08 07:26:49
Python中apscheduler執(zhí)行使用步驟

apscheduler是依托于Quartz的一個Python定時任務(wù)框架,建立了Quartz的全部功能,運用起來十分便捷。給予了依托于日期、固定時間間隔及其crontab...詳情>>

2023-11-08 07:19:37
python 序列化與反序列化如何使用?

根據(jù)某些規(guī)則,將內(nèi)存數(shù)據(jù)保存到文件中時,文件是字節(jié)序列,因此必須將內(nèi)存數(shù)據(jù)轉(zhuǎn)換為字節(jié)序列,然后輸出到文件,這就是序列化;反之,從文件的...詳情>>

2023-11-08 07:01:37
Python企業(yè)應(yīng)用的優(yōu)缺點

Python是軟件開發(fā)領(lǐng)域一朵誘人的奇葩:人們經(jīng)常把Python看作是一種起到縫合作用的嚴(yán)格腳本語言,不過卻很少有人意識到Python已經(jīng)足夠強大到應(yīng)用...詳情>>

2023-11-08 06:25:37