Hi everyone, been looking at the following functions, but can't
figure out how they work.
def f(a, L=[]):
L.append(a)
return L
def g(a, L=None):
if L == None:
L = []
L.append(a)
return L
print f(1)
print f(2)
print f(3)
print g(1)
print g(2)
print g(3)
The output is:
[1]
[1, 2]
[1, 2, 3]
[1]
[2]
[3]
I understand that default arguments are evaluated once only, at the
point of function definition, but I can't wrap my head around how the
function g() doesn't do the same thing as the function f().
Any help would be most appreciated, thanks.
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor