Default Argument Question
Chris Rebert
clp at rebertia.com
Wed Oct 29 12:27:22 EDT 2008
On Wed, Oct 29, 2008 at 9:14 AM, Paulo J. Matos <pocm at ecs.soton.ac.uk> 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
>
More information about the Python-list
mailing list