Hi folks,
How do I pass a list by value to a function.
The foll: snippet of code produces the output as shown:
Code:
-----
def junk(x):
x.append("20")
return x
a = ["10"]
b = junk(a)
print b
print a
Output:
-------
>>>
b = ['10', '20']
a = ['10', '20']
This indicates that the variable "a" was passed by reference because the
function alters its value in the main script.
However, the following code produces a slightly diff output:
Code:
-----
def junk(x):
x = "30"
return x
a = ["10"]
b = junk(a)
print "b = ", b
print "a = ", a
Output:
-------
>>>
b = 30
a = ['10']
In this case, "a" seems to be passed by value, because the value is
unchanged even after the call to the function.
Question is, in the 1st scenario, how do I forcefully pass the variable
by value rather than reference. Why is there a difference between the
two scenarios?
Cheers
Hans
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor