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  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to