我正在学习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]