为什么在第一代码中输出为12,在第二代码中输出为[2] [2]。有什么区别

时间:2019-02-22 17:31:14

标签: python python-3.x pygame

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],但是为什么。

1 个答案:

答案 0 :(得分:0)

在第一种情况下,您要将1添加到列表的第一个元素,该元素的开头为零。每次调用函数时,该值都会增加1。因此,x的值为1,y的值为2。打印时,值为12。 在第二种情况下,您将返回列表。因此,它打印了列表而不是值。