Jorgen Bodde wrote: > Hi, > > I am trying to simplify my code, and want to automate the assigning of > variables I get back from a set. I was thinking of putting the > variables I want changed in a list: > > L = [self._varA, self._varB ] > > self._varA is a variable I want to change when I pass L to a function. > I know doing this; > > L[0] = 12 > > Will replace the entry self._varA with 12, but is there a way to > indirectly change the value of self._varA, through the list, something > like a by-reference in C++ or a pointer-pointer? > > With regards, > - Jorgen
You can make self._varA and self._varB instances of a class and assign a value. Not tested. class _var: pass self._varA=_var() self._varB=_var() L=[self._varA, self._varB] then in function (or method of a class instance): L[0].value=12 Another way is to use a class to pass everything: class _vars: def __init__(self, vars=None): if vars is not None: for varname, value in vars.items(): setattr(self, varname, value) return vars=_vars({'_varA': 0, '_varB': 0}) Then you can access: vars._varA vars._varB -Larry l -- http://mail.python.org/mailman/listinfo/python-list