2
我已經看過this的問題,但我真的不明白爲什麼兩個id()
調用返回相同的值,而is
比較返回False
。即使id是相同的,爲什麼`is`返回False?
>>> [2,2,2] + [1] == [2,2,2,1]
True
>>> [2,2,2] + [1] is [2,2,2,1]
False
>>> id([2,2,2] + [1])
4396847688
>>> id([2,2,2,1])
4396847688
可以肯定,我沒有想到的兩個比較返回True
和False
像他們那樣,我只是不明白爲什麼ID是不一樣。
簡單地說,因爲相同的內存被重用於對象:在最後兩個語句中,您獲取的id對象的生存期不重疊,所以Python可以自由地(重新)爲它們使用相同的內存。 –
這很有道理,謝謝!如果這是一個答案,我會接受它! – damian