|
代码一:def f(a, L=[]):
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
代码二:
def f(a, L=None):
if L is None:
L = []
L.append(a)
return L
print(f(1))
print(f(2))
print(f(3))
Python的函数的默认参数只会在定义时计算一次,因此第一段代码三次打印结果为L=[1], L=[1,2], L=[1,2,3]
但是第二段代码输出L=[1], L=[2], L=[3]。这样看来每次调用都执行了L=None这条语句啊。这里有点困惑
|
|