2016年10月25日火曜日

Python:関数と戻り値と勝手に代入

拾い物のスクリプトを見ていたら。変な記述を見つけた。
簡単にするとこんな感じ。

test = []
def Test1(pList):
    pList.append("test")
    print pList
    return pList
Test1(test)
print test

本来ならtest = Test1(test)
とでもすればよいのか?
一見代入していないように見えてprintはちゃんと"test"と表示される。

ほほーPythonでは勝手に代入できちゃうの?
と思って以下のように動作チェック。
結果は・・・
['test']
['test']
---
['test']
---
test
んーあれー?
appendを使った時だけうまくいってる。
よくわからんわ・・・
どうして?

0 コメント:

コメントを投稿