在下面的函数中,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
- 它不会在调用之间保持更新。
为什么这没有更新但列表更新的原因是什么?