Steven D'Aprano <ste...@remove.this.cybersource.com.au> writes: > On Tue, 14 Apr 2009 06:03:58 -0700, Eric.Le.Bigot wrote: > > The goal is to maintain a list [x, y,…] of these float-like > > objects, and to modify their value on the fly (with something like > > x.value = 3.14) so that any expression like "x > > +y" uses the new value. > > Why is that the goal? If you want to change the value of x, just > change the value of x.
As you're aware (but Eric may not be), Python doesn't have “change the value of x”. The closest would be to re-bind the name ‘x’ to a different value, which would not be what Eric is asking for. If I understand correctly, Eric wants something with the following behaviour: >>> foo = [floatref(3.14), floatref(1.41)] >>> bar = foo[0] >>> baz = foo[1] >>> foo [3.14, 1.41] >>> (bar, baz) (3.14, 1.41) >>> foo[1].changevalue(1.62) >>> foo [3.14, 1.62] >>> (bar, baz) (3.14, 1.62) and is asking how to get such a ‘floatref’. -- \ “If you go parachuting, and your parachute doesn't open, and | `\ you friends are all watching you fall, I think a funny gag | _o__) would be to pretend you were swimming.” —Jack Handey | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list