Newbie Q: var params

zzzzz zzizz_ at notmail.com
Tue Apr 10 23:46:11 EDT 2001


Hi all,

I (possibly incorrectly) thought that parameters passed in functions
were modifiable by default in Python, here is some code that I tested
with:
>>> x=[1,2,3]
>>> def paramtest(parameter):
... 	print "parameter =",parameter
... 	print "parameter ID =",id(parameter)
... 	parameter.append("hello")
... 	print "new parameter =",parameter
... 	print "new parameter ID =",id(parameter)
... 	parameter=[2,4,6,8]
... 	print "modified parameter =",parameter
... 	print "modified parameter ID =",id(parameter)
... 	
>>> paramtest(x)
parameter = [1, 2, 3]
parameter ID = 20270396
new parameter = [1, 2, 3, 'hello']
new parameter ID = 20270396
modified parameter = [2, 4, 6, 8]
modified parameter ID = 20263708
>>> x
[1, 2, 3, 'hello']

It looks like "parameter=[2,4,6,8]" creates a new local variable that
overrides the passed parameter. How do I do this properly so that the
passed parameter changes in all parameter type cases?

Thanks,

z.

Regards,

zzzzz.
---------------------



More information about the Python-list mailing list