次の関数では、L は呼び出しごとに値を格納します。
たとえば、 を呼び出すとf(1)
、L は になり[1]
ます。もう一度呼び出すと、前の L に新しい値が追加されます。したがって、L は[1,1]
です。
def f(a, L=[]):
L.append(a)
return L
しかし、この関数では:
i = 5
def f(arg=i):
print arg
i = 6
この関数を何回呼び出しても、引数はそのまま5
です。呼び出し間で更新されたままではありません。
これは更新されないが、リストは更新される理由は何ですか?