Is it possible to bind a list member or variable to a variable such that
temp = 5
list = [ temp ]
temp == 6
list
would show
list = [ 6 ]
As you know by now, no. Like any problem in programming, this can be
solved with a layer of abstraction: you need an object which behaves a bit
like a variable, so that you can have multiple references to it. The
simplest solution is to use a single-element list:
temp = [None] # set up the list
temp[0] = 5
list = [temp]
temp[0] = 6
list
[[6]]
I think this is a bit ugly - the point of a list is to hold a sequence of
things, so doing this strikes me as a bit of an abuse.
An alternative would be a class:
class var:
def __init__(self, value=None):
self.value = value
def __str__(self): # not necessary, but handy
return "<<" + str(self.val) + ">>"
temp = var()
temp.value = 5
list = [temp]
temp.value = 6
list
[<<6>>]
This is more heavyweight, in terms of both code and execution resources,
but it makes your intent clearer, which might make it worthwhile.
tom