Re: Default Argument Question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Chris Rebert

    #1

    Re: Default Argument Question

    On Wed, Oct 29, 2008 at 9:14 AM, Paulo J. Matos <pocm@ecs.soton .ac.ukwrote:
    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 "accumulati on" behavior of lists is considered an
    aberration and is usually not desired.

    Cheers,
    Chris
    --
    Follow the path of the Iguana...

    >
    Cheers,
    >
    --
    Paulo Jorge Matos - pocmatos @ gmail.com
    --

    >
  • Bruno Desthuilliers

    #2
    Re: Default Argument Question

    Chris Rebert a écrit :
    (snip)
    Note that the "accumulati on" behavior of lists is considered an
    aberration
    By who ?

    Comment

    Working...