默认参数L = []和L = None有什么区别?

时间:2019-05-01 09:41:45

标签: python parameters

我正在学习python的参数部分。我遇到了一个示例代码,该代码显示了默认值将仅执行一次的原理。我已经看过一些文档enter link description here。在第二个示例中,f( 2)输出[2]。我认为将不会执行'if ...',因为默认参数已成为列表。这是我无法理解的地方。

def f(a, L=[]):
    L.append(a)
    return L

print(f(1))#[1]
print(f(2))#[1, 2]
print(f(3))#[1,2,3]

def f(a, L=None):
    if L is None:
        L = []
    L.append(a)
    return L
print(f(1))#[1]
print(f(2))#[2]

0 个答案:

没有答案
相关问题