Python: How do I pass a variable by reference?
Posted
by
David Sykes
on Stack Overflow
See other posts from Stack Overflow
or by David Sykes
Published on 2009-06-12T10:23:51Z
Indexed on
2011/11/15
17:51 UTC
Read the original article
Hit count: 272
The Python documentation seems unclear about whether parameters are passed by reference or value, and the following code produces the unchanged value 'Original'
class PassByReference:
def __init__(self):
self.variable = 'Original'
self.Change(self.variable)
print self.variable
def Change(self, var):
var = 'Changed'
Is there something I can do to pass the variable by actual reference?
Update:
I am coming to the conclusion that while Andrea answered my actual question (Can you... No but you can...), on the subject of pass by reference Blair Conrad is more technically correct.
As I understand it the crux is that a copy of a reference is being passed. If you assign that copy, as in my example, then you lose the reference to the original and it remains unchanged. If, however, you 'use' that reference, for example append on a passed list, then the original is changed.
I will see how the comments and votes go before choosing the answer people think is the best
© Stack Overflow or respective owner