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