Hi all,
I was going through the tutorial at http://docs.python.org/tut/node6.html when I
came to the bit about default arguments with this code:

def f(a, L=[]):
    L.append(a)
    return L

print f(1)
print f(2)
print f(3)

returns:
[1]
[1, 2]
[1, 2, 3]

>From the postings here, I think I understand that this occurs because L is only
initialized when f is first run.  However, this code gives some different 
results:

def f2(a, L=[]):
     if L == []:
             L = []
     L.append(a)
     return L

print f2(1)
print f2(2)
print f2(3)

returns:
[1]
[2]
[3]

I'm not too clear on why this doesn't return the same results as the first.  Can
someone enlighten me?

Thanks,
Josh


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to