<分区> 分区>
Possible Duplicate:
“Least Astonishment” in Python: The Mutable Default Argument
List extending strange behaviour
Pyramid traversal view lookup using method names
假设我有这个功能:
def a(b=[]):
b += [1]
print b
调用它会产生这样的结果:
>>> a()
[1]
>>> a()
[1, 1]
>>> a()
[1, 1, 1]
当我将 b += [1] 更改为 b = b + [1] 时,函数的行为发生了变化:
>>> a()
[1]
>>> a()
[1]
>>> a()
[1]
b = b + [1] 与 b += [1] 有何不同?为什么会这样?
