真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python中的不可變對(duì)象真的不可變嗎

本篇內(nèi)容介紹了“Python中的不可變對(duì)象真的不可變嗎”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了酒泉免費(fèi)建站歡迎大家使用!

在日常的學(xué)習(xí)和工作中,經(jīng)常會(huì)遇到"不可變對(duì)象"的問題,但是隨著接觸Python這門語言的時(shí)間越來越多,遇到的坑越來越奇怪。我不禁產(chǎn)生了一個(gè)疑問:不可變對(duì)象真的不可變嗎?

我們知道元組就是"不可變對(duì)象",當(dāng)你想嘗試給一個(gè)元組賦值的時(shí)候,它會(huì)報(bào)錯(cuò):

Python中的不可變對(duì)象真的不可變嗎

請(qǐng)注意報(bào)錯(cuò)的語言: "does not support item assignment ", 元組對(duì)象不支持賦值操作。

例1

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

Python中的不可變對(duì)象真的不可變嗎


盡管報(bào)了一個(gè)錯(cuò),但是它變量的值已經(jīng)被改變了。

原因

其實(shí),這里主要是因?yàn)?+= 操作對(duì)于“不可變對(duì)象”會(huì)產(chǎn)生新的變量并綁定到原有變量上。但是又由于+=中的"="號(hào),執(zhí)行了一次對(duì)元組對(duì)象的賦值操作,這是不允許的,因此報(bào)了錯(cuò),但新的對(duì)象已經(jīng)被綁定到了原有變量中,因此我們可以看到變量的值發(fā)生了改變。

例2

還有一種情況是這樣的:

Python中的不可變對(duì)象真的不可變嗎


這里完全沒有報(bào)錯(cuò),為什么呢?因?yàn)閍ppend并不涉及到賦值操作,元組只是不允許賦值,并沒有不允許append和extend啊,所以稱元組為“不可變對(duì)象” 實(shí)在是太不嚴(yán)謹(jǐn)了!

深一點(diǎn)

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

Python中的不可變對(duì)象真的不可變嗎

因此,要避免踩上這些坑,忘掉元組是“不可變對(duì)象”這樣不嚴(yán)謹(jǐn)?shù)谋硎鲂问剑ó?dāng)然從地址的角度來講它是對(duì)的,元組內(nèi)部所有元素的ID都不可變),請(qǐng)這樣記:元組是不可賦值對(duì)象。

“Python中的不可變對(duì)象真的不可變嗎”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


網(wǎng)站題目:Python中的不可變對(duì)象真的不可變嗎
鏈接地址:http://weahome.cn/article/jhhgop.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部