Pythonの=は右辺を左辺に代入するじゃなくて左辺に右辺のオブジェクト(またはそのオブジェクトが変数などならその中身)の場所を参照させるだと思う
「→」みたいな意味

そして同じ一つのオブジェクトを2つ以上の変数が参照している場合、どれかの参照している変数を介して参照されてる変数に変更が入ろうとした場合されてる方がイミュータブルなら消去法的に新しい場所に新しいオブジェクトを作って変更させようとした変数にそこを新しく参照させる

ただし元からあったオブジェクトは他の変数に参照されたままなので消えない

当然本当は変数もオブジェクトだろうけどそれは無視してる

だから俺はcopy()等を使わない限りイミュータブルに特別な操作を加える仕様の純粋な参照渡しだと認識してるんだけど違うの?