これはPython Advent Calendar 2016 7日目の記事です. アドベントカレンダーの日程を勘違いしてしまっていたので,社内向けに作ったPython資料を使いまわすことでお茶を濁します。。。 Pythonの値渡しと参照渡しについてまとめてみます. Pythonでは,変数や関数に値を渡す場合すべて参照渡しで渡されています.例えば挙動だけ見れば値渡しに見えるint型でも,値が変更されるまでは元の値と同一のオブジェクトを参照しています. 例を見てみましょう. >>> def foo(a): ... print(a, id(a)) ... a += 1 ... print(a, id(a)) ... >>> b = 0 >>> print(b, id(b)) 0 4297514880 # 'b' 用の領域が確保されている >>> foo(b) 0 4297514880 # ここま