91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的不可變對象真的不可變嗎

發布時間:2021-08-30 15:57:46 來源:億速云 閱讀:138 作者:chen 欄目:大數據

本篇內容介紹了“Python中的不可變對象真的不可變嗎”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

在日常的學習和工作中,經常會遇到"不可變對象"的問題,但是隨著接觸Python這門語言的時間越來越多,遇到的坑越來越奇怪。我不禁產生了一個疑問:不可變對象真的不可變嗎?

我們知道元組就是"不可變對象",當你想嘗試給一個元組賦值的時候,它會報錯:

Python中的不可變對象真的不可變嗎

請注意報錯的語言: "does not support item assignment ", 元組對象不支持賦值操作。

例1

讓我們來看看下面這樣的操作:

Python中的不可變對象真的不可變嗎


盡管報了一個錯,但是它變量的值已經被改變了。

原因

其實,這里主要是因為 += 操作對于“不可變對象”會產生新的變量并綁定到原有變量上。但是又由于+=中的"="號,執行了一次對元組對象的賦值操作,這是不允許的,因此報了錯,但新的對象已經被綁定到了原有變量中,因此我們可以看到變量的值發生了改變。

例2

還有一種情況是這樣的:

Python中的不可變對象真的不可變嗎


這里完全沒有報錯,為什么呢?因為append并不涉及到賦值操作,元組只是不允許賦值,并沒有不允許append和extend啊,所以稱元組為“不可變對象” 實在是太不嚴謹了!

深一點

其實如果你知道元組中存放的是元素所對應的地址(ID),就好理解多了,append和extend僅僅是修改了列表的元素,而列表本身的ID并沒有發生變化,只有當賦值操作執行的時候,ID才會發生變化,而這種情況是元組不允許發生的。

Python中的不可變對象真的不可變嗎

因此,要避免踩上這些坑,忘掉元組是“不可變對象”這樣不嚴謹的表述形式(當然從地址的角度來講它是對的,元組內部所有元素的ID都不可變),請這樣記:元組是不可賦值對象

“Python中的不可變對象真的不可變嗎”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沙坪坝区| 奇台县| 普安县| 沛县| 黎城县| 固安县| 贵阳市| 敦煌市| 韶关市| 盱眙县| 犍为县| 息烽县| 抚顺市| 芦山县| 新河县| 广元市| 朝阳县| 淮阳县| 子洲县| 喀喇沁旗| 翁源县| 苍溪县| 青川县| 三穗县| 织金县| 梧州市| 孝感市| 光泽县| 天台县| 收藏| 策勒县| 乐山市| 开原市| 千阳县| 洛宁县| 黑河市| 台北县| 友谊县| 广东省| 白山市| 汉寿县|