eric.le.bi...@spectro.jussieu.fr wrote: > It looks like what is needed here are a kind of "mutable float". Is > there a simple way of creating such a type? I don't mind changing the > value through x.value = 1.23 instead of x = 1.23... :) > > On Apr 14, 3:03 pm, eric.le.bi...@spectro.jussieu.fr wrote: >> Hello, >> >> Is there a way to easily build an object that behaves exactly like a >> float, but whose value can be changed? 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. >> >> I thought of two solutions, both of which I can't make to work: >> >> 1) Use a class that inherits from float. This takes care of the >> "behave like float" part. But is it possible to change the value of >> the float associated with an instance? That is, is it possible to >> do: "x = MyFloat(1.23); x.change_value(3.14)" so that x's float value >> becomes 3.14? >> >> 2) The other possibility I thought of was: use a class that defines a >> 'value' member (x.value). This takes care of the "value can be >> changed" part. But is it possible/easy to make it fully behave like a >> float (including when passed to functions like math.sin)? >> >> Alternatively, I'd be happy with a way of handling numerical >> uncertainties in Python calculations (such as in "calculate the value >> and uncertainty of a*sin(b) knowing that a=3.0 +/- 0.1 and b=1.00 +/- >> 0.01"). >> >> Any idea would be much appreciated! >
I think you'll have to describe your use case a little better. I don't see why you'd need a mutable float. As long as the reference x is visible to the other parts of your code, when that code uses x, it'll always get the right instance of a float object. --David -- http://mail.python.org/mailman/listinfo/python-list