デフォルト値が可変性オブジェクトなら上書きできてしまう
関数はオブジェクトで、デフォルト値は関数オブジェクトに対応するため。
>>> def foo(x=[10]): ... for i in x: print(i) ... x.append(sum(x)) ... >>> foo() 10 >>> foo() 10 10 >>> foo() 10 10 20
関数はオブジェクトで、デフォルト値は関数オブジェクトに対応するため。
>>> def foo(x=[10]): ... for i in x: print(i) ... x.append(sum(x)) ... >>> foo() 10 >>> foo() 10 10 >>> foo() 10 10 20