値渡しと参照渡し(プログラミング基礎)
プログラミングには、値渡しと参照渡しという概念があります。
ある変数を別の変数に渡す際などで注意が必要です。
値渡しと参照渡しとは
値渡し:変数のアドレスは渡さずにその変数の値だけ変数に渡すこと
参照渡し:変数のアドレスと変数の値の両方を渡すこと
コードベースでみる
code:main.py
# 参照渡しの例
another_list = sample_list
another_list.append('z')
print(sample_list)
print(another_list)
# 値渡しの例
another_list = sample_list.copy() # ここを修正
another_list.append('z')
print(sample_list)
print(another_list)
なぜこんなことが起きるのか
変数を'='で渡すと、その変数があるアドレスを渡すことになる。
これを防ぐために、値を取り出すという処理を加えれば値だけを変数に渡すことができる。
関連キーワード
スプレッド演算子
リストやタプルをアンパックする演算子です(Pythonだと「*」とか「**」、JSだと「...」です)
参考