Can anyone explain why the outputs are different in these two cases:
Case 1:
Input:
def fun1(x,z=[]):
z.append(x)
return z
def fun2(a):
print(fun1(a))
print(fun1(a))
fun2([1])
Output:
[1]
[1, 1]
Case 2:
Input:
def fun1(x,z):
z.append(x)
return z
def fun2(a):
print(fun1(a, []))
print(fun1(a, []))
fun2([1])
Output:
[1]
[1]