第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

整數(shù)是不可變的還是可變的?

整數(shù)是不可變的還是可變的?

慕碼人2483693 2022-12-20 13:57:11
Int 變量是不可變的。那么當一個整數(shù)類型被賦值給一個新的變量時,它應該創(chuàng)建一個新的對象,對吧?但它只會在對任一變量進行更改時創(chuàng)建一個新對象。整數(shù)不是不可變的嗎?我錯過了什么?謝謝!x = 5y = xprint(x is y)   #>>>True | So y is a reference.print(y)        #>>>5x +=1print(x is y)   #>>>False | now y is an object? Is that it? print(y)        #>>>5
查看完整描述

4 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

x并且y都是參考。

x = 5-x是對5

y = x-y也是對5

x += 1-x現(xiàn)在是對 的引用6y仍然是對 的引用5


查看完整回答
反對 回復 2022-12-20
?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

整數(shù)是不可變的。

當你寫 x=5 時,x 指向一個包含 5 的內存位置。

當您繼續(xù)編寫 y=x 時,變量 y 指向與 x 相同的位置。

然后輸入 x+1=6,現(xiàn)在 x 指向一個包含 6 的新位置,而不是之前的位置。(這里,整數(shù)仍然保持不變,因為原始整數(shù) 5 仍然存在,但變量 x 現(xiàn)在沒有綁定到它。x 現(xiàn)在綁定到一個新位置。但 y 仍然綁定到整數(shù) 5)

但是 y 仍然指向與 5 相同的位置。

所以,整數(shù)仍然是不可變的,這就是它的工作原理。為了看得更清楚,在每一步之后使用 id(x) 或 id(y)。


查看完整回答
反對 回復 2022-12-20
?
慕森卡

TA貢獻1806條經驗 獲得超8個贊

有兩件事在起作用。首先,int 是可以綁定到多個變量的對象。其次,python緩存了一小群小整數(shù),這些小整數(shù)往往會被大量使用以提高效率


x = 5       # get the cached `5` object and bind it to x

y = x       # take whatever object is bound to x and also bind it to y

x += 1      # take whatever object is bound to x, call its `__iadd__` 

            # method and bind the return value to x. `int.__iadd__`

            # adds the integers and since it is small, returns the

            # cached `6` object.

請注意,賦值不會創(chuàng)建新對象。它只是將對象的引用放入變量中,就像將鍵/值對添加到字典中一樣。


查看完整回答
反對 回復 2022-12-20
?
慕少森

TA貢獻2019條經驗 獲得超9個贊

這是一個圖解說明。關鍵部分x += 1實際上是在內存中創(chuàng)建一個新對象,其值在x的舊引用加上16在這種情況下為 )。

http://img1.sycdn.imooc.com//63a14eee0001bda006570911.jpg


查看完整回答
反對 回復 2022-12-20
  • 4 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號