def f1(a,L=[]):
if a==1:
print(a,L)
else:
L.append(a)
return L
def f2(a,L=[]):
if a==1:
print(a,L)
else:
L=[3]
return L
调用这两个函数会产生以下结果:
F1(2) - > [2]
F1(1) - > 1 [2]
F2(2) - > [3]
F2(1) - > 1 []
这真让我感到困惑,如果L在调用后不会丢失,为什么f2(1)不会返回1 [3]?任何人都可以在python中解释参数值存储或初始化模式吗?