On Wed, Oct 29, 2008 at 9:14 AM, Paulo J. Matos <[EMAIL PROTECTED]> wrote: > Hi all, > > Going through the tutorial brought up a question. Consider the functions: > > def f(a, L=[]): > L.append(a) > return L > > print f(3) > print f(9) > print f(7) > > def f1(i = 0): > i = i + 1 > print i > > f1() > f1() > f1() > f1() > > Since the f accumulates the values in L, I was expecting to see i > printing 1,2,3,4 but this doesn't happen. > Can someone please explain why and what is going on beneath the veil?
http://effbot.org/zone/default-values.htm explains this FAQ quite well. Note that the "accumulation" behavior of lists is considered an aberration and is usually not desired. Cheers, Chris -- Follow the path of the Iguana... http://rebertia.com > > Cheers, > > -- > Paulo Jorge Matos - pocmatos @ gmail.com > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list