重複の可能性:
Python の「最小の驚き」: 変更可能な既定の引数
私はこの機能を作りました:
def test(num,v=[]):
v.append(num)
if num == 10:
return v
return test(num+1,v)
私がそれを使用すると、以前の呼び出しの結果がまだそこにあるようです:
>>> test(3)
[3, 4, 5, 6, 7, 8, 9, 10]
>>> test(3)
[3, 4, 5, 6, 7, 8, 9, 10, 3, 4, 5, 6, 7, 8, 9, 10]
>>> test(3)
[3, 4, 5, 6, 7, 8, 9, 10, 3, 4, 5, 6, 7, 8, 9, 10, 3, 4, 5, 6, 7, 8, 9, 10]
v
ではなく関数宣言だけで使用するv=[]
と、うまくいくようです。
私は何が欠けていますか?実行するたびに関数を新鮮にしたい。Python 2.7.3 を使用しています。