knorth55's memo

Technical memo by @knorth55

Pythonの引数が参照渡しである影響

Python 2.7でちょっとつまってしまったので検証してみたら、関数の引数は以下のような例で変更されるらしい。
Pythonは参照渡しなので可変オブジェクトであるリストに関してはこういった破壊的(?)な処理が行われます。

参考サイト
Pythonの引数は全て参照渡しの件について - k_kinukawa's diary

$python 
>>> list = [1,2,3,4]
>>> def f(list, x):
...     list[x] = 0
...     return list
... 
>>> list_ = f(list,1)
>>> print list
[1, 0, 3, 4]