変数に新たなオブジェクト自体が代入される場合、以前の参照先でなく新たなオブジェクトが作られた場所(新しく確保された領域)を参照します。つまり、オブジェクトの内容は変更できまずが、変数が保持してる参照の値は変更できません。 変更不可な型の例 サンプルコードで変更不可な型(Immutable)の例を見てみましょう。 def my_func(x): print(x, id(x)) # ② 1 140703210804896 x = x * 100 print(x, id(x)) # ③ 100 140703210808064 y = 1 print(y, id(y)) # ①1 140703210804896 my_func(y) print(y, id(y)) # ④1 140703210804896 ①変数y用の領域を確保 ②変数xは変数yと同じ領域を参照 ③変数x用に新しい領域を確保 ④変
![【Python】参照渡しと値渡しの違い](https://cdn-ak-scissors.b.st-hatena.com/image/square/cbfb71d1b4146c3124eae159253b9e7a14e3b941/height=288;version=1;width=512/https%3A%2F%2Falgorithm.joho.info%2Fwp-content%2Fuploads%2F2023%2F08%2F404.jpg)