【发布时间】:2012-03-27 09:54:05
【问题描述】:
可能重复:
“Least Astonishment” in Python: The Mutable Default Argument
def f(a, L=[]):
L.append(a)
return L
print(f(1, [1, 2]))
print(f(1))
print(f(2))
print(f(3))
我想知道为什么另一个 f(1), f(2), f(3) 没有附加到第一个 f(1, [1,2]) 上。 我猜结果应该是:
[1, 2, 1]
[1, 2, 1, 1]
[1, 2, 1, 1, 2]
[1, 2, 1, 1, 2, 3]
但结果不是这样。我不知道为什么。
【问题讨论】:
-
@Closevoters:从他的例子中可以明显看出,他确实希望默认参数会改变,所以不,不是任何重复。
标签: python function parameters