def foo(a=[0]):
a[0]+=1
return a[0]
x=foo()
y=foo()
print(f'{x}{y}')
--->输出为12,但是为什么。
def foo(a=[0]):
a[0]+=1
return a
x=foo()
y=foo()
print(f'{x}{y}')
->输出为[2] [2],但是为什么。
答案 0 :(得分:0)
在第一种情况下,您要将1添加到列表的第一个元素,该元素的开头为零。每次调用函数时,该值都会增加1。因此,x的值为1,y的值为2。打印时,值为12。 在第二种情况下,您将返回列表。因此,它打印了列表而不是值。