成人免费观看网欧美片-成人免费观看视频-成人免费观看男女羞羞视频-成人免费观看的视频黄页-成人免费高清视频-成人免费福利片在线观看

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > python 的不可變對象

python 的不可變對象

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

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

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

不可變對象

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

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

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

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

#這時,原來的這個值為1的內存地址的引用次數減一,當引用計數為0時,內存地址被回收

>>>b=a#變量b綁定與a一樣的內存

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

(1972461824,1972461824)

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

>>>a,b

(2,3)

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

(1972461856,1972461824)

>>>x=1

>>>y=1

>>>z=1

>>>xisy

True

>>>yisz

True

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

(1972461792,1972461792,1972461792)

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

不可變對象最大的優點便是減少重復的值對內存空間的占用。

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

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

原來的內存塊會因變量與其他內存塊綁定而引用次數減1.

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

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT