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
確かに、私はIDが異なっていない理由を私は得ることはありません、彼らがしたように2つの比較はTrue
とFalse
を返すように期待していませんでした。
単に同じメモリがオブジェクトに再利用されているため、最後の2つのステートメントでは、取得しているIDのオブジェクトのライフタイムが重複しないため、Pythonは同じメモリを自由に(再)使用できます。 –
それは感謝します、ありがとう!それが答えだったら、私はそれを受け入れるだろう! – damian