a wierd parameter passing behavior
DavidW Blaschke
dwblas at yahoo.com
Wed Jun 4 15:59:44 EDT 2003
It's not good practice to use the letters "l", "o",
or "i" as variable names as they look too much like
numbers and hence the code is hard to read. Just some
friendly advice.
D.W.
> --- In python-list at yahoogroups.com, mpradella at y...
> (Torvo Sollazzo)
> wrote:
> > Hi!
> >
> > I found a strange parameter passing behavior in
> Python (v. 2.2.2).
> > Look at this piece of code:
> > def p(l) :
> > l += [3]
> > l[0] = 2
> >
> > def p1(l) :
> > l = l + [3]
> > l[0] = 2
> >
> > def f() :
> > l = [1]
> > p(l)
> > print l
> > l = [1]
> > p1(l)
> > print l
> >
> > If I call f(), I obtain the following results:
> > [2,3]
> > [1]
> > Why p1() is different from p()? The list l should
> be passed by
> > reference in both cases, while it seems that "l =
> l + [3]" creates a
> > new local variable, also called l.
> >
> > Any idea?
> > Many thanks,
> > TS
> > --
> >
> http://mail.python.org/mailman/listinfo/python-list
>
__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com
More information about the Python-list
mailing list