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

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

什么時候“i+=x”與Python中的“i=i+x”不同?

什么時候“i+=x”與Python中的“i=i+x”不同?

狐的傳說 2019-06-19 15:56:42
什么時候“i+=x”與Python中的“i=i+x”不同?我聽說+=可以產(chǎn)生與標(biāo)準(zhǔn)符號不同的效果。i = i +..有沒有一個案子i += 1將不同于i = i + 1?
查看完整描述

3 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊

在被子下面,i += 1做這樣的事:

try:
    i = i.__iadd__(1)except AttributeError:
    i = i.__add__(1)

當(dāng)i = i + 1做這樣的事:

i = i.__add__(1)

這有點過于簡單化,但是您了解到:Python提供了一種處理類型的方法+=特別是,通過創(chuàng)建一個__iadd__方法以及__add__.

意圖是可變的類型,比如list,會變異到__iadd__(然后回來self,除非您正在做一些非常棘手的事情),而不可變的類型,例如int不會實現(xiàn)的。

例如:

>>> l1 = []>>> l2 = l1>>> l1 += [3]>>> l2[3]

因為l2是與l1,你變異了l1,你也變異了l2.

但是:

>>> l1 = []>>> l2 = l1>>> l1 = l1 + [3]>>> l2[]

在這里,你沒有變異l1相反,您創(chuàng)建了一個新列表,l1 + [3],并重新命名l1指著它,離開l2指向原始列表。

(在+=版本,您也重新綁定了l1,只是在這種情況下,您重新綁定到相同的list它已經(jīng)注定了,所以你通??梢院雎赃@一部分。)


查看完整回答
反對 回復(fù) 2019-06-19
  • 3 回答
  • 0 關(guān)注
  • 704 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號