Passing by value instead of reference
Michael Hudson
mwh21 at cam.ac.uk
Wed May 10 15:33:24 EDT 2000
More information about the Python-list mailing list
Wed May 10 15:33:24 EDT 2000
- Previous message (by thread): Passing by value instead of reference
- Next message (by thread): Passing by value instead of reference
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Jeff Massung" <jmassung at magpiesystems.com> writes: > Michael Hudson wrote in message ... > >It will. I don't think you understand assigment yet... > > > > Sorry, I don't ;) - I was thinking like this (I understand how my previous > example was wrong). > > >>> def test(x): > x.append(3) > >>> z = [1,2] > >>> test(z) > >>> z > [1, 2, 3] > >>> > > How can I get x to have the value of z, modify it, and use the modified > value, without z being modified overall? Thanks, guys ;) In general, something like: def test(x): import copy x=copy.copy(x) # or x=copy.deepcopy() (to taste) x.append( ... ) just for lists: def test(x): x=x[:] x.append(3) The latter is fairly idiomatic; I've never used the former (I don't think). Cheers, M. -- 112. Computer Science is embarrassed by the computer. -- Alan Perlis, http://www.cs.yale.edu/~perlis-alan/quotes.html
- Previous message (by thread): Passing by value instead of reference
- Next message (by thread): Passing by value instead of reference
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list