python函数论证之谜

时间:2017-08-24 23:12:00

标签: python function arguments parameter-passing

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中解释参数值存储或初始化模式吗?

0 个答案:

没有答案