代码:
def func(a=[]):
a.append(1)
print(a)
func()
func()
func()
输出:
[1]
[1, 1]
[1, 1, 1]
我认为每次调用func
时都会重新分配默认值列表,答案是:
[1]
[1]
[1]
答案 0 :(得分:1)
你说你“认为默认值,列表,每次调用func时都会被重新分配。”你错了。如果您正在学习Python,那么您应该在某些时候完成the official tutorial。这是what it says about default arguments:
默认值仅评估一次。这有所不同 默认值是可变对象,例如列表,字典或 大多数课程的实例。
阅读教程了解详情。