list .__ iadd__和list .__ add__的不同行為考慮以下代碼:>>> x = y = [1, 2, 3, 4]>>> x += [4]>>> x[1, 2, 3, 4, 4]>>> y[1, 2, 3, 4, 4]然后考慮這個:>>> x = y = [1, 2, 3, 4]>>> x = x + [4]>>> x[1, 2, 3, 4, 4]>>> y[1, 2, 3, 4]為什么這兩個有區(qū)別?(是的,我試著尋找這個)。
2 回答

30秒到達戰(zhàn)場
TA貢獻1828條經(jīng)驗 獲得超6個贊
__iadd__
改變列表,然后__add__
返回一個新列表,如圖所示。
一個表達式x += y
首先嘗試調(diào)用,__iadd__
并且在調(diào)用失敗后,調(diào)用__add__
遵循一個賦值(請參閱Sven的注釋以進行小修正)。既然list
有__iadd__
那么它?突變魔術(shù)這一點”。
添加回答
舉報
0/150
提交
取消