It looks like Dan found what is in effect a mutable float (numpy.array). Now, with respect to the initial problem of having mutable floats that also contain an uncertainty attribute, I'd like to note that numpy.ndarray can be subclassed: it now looks possible to create a mutable float class that also contains an uncertainty attribute!
So, I'll see how/whether this can be implemented without pain... I'll leave a message here when I've got news! Thanks again everybody for helping me out! On Apr 15, 10:44 am, Dan Goodman <dg.gm...@thesamovar.net> wrote: > 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. > > Hi Eric, > > Numpy's array object can do something like what you want: > > In [27]: x=array(0.0) > > In [28]: print x, sin(x) > 0.0 0.0 > > In [29]: x.itemset(pi/2) > > In [30]: print x, sin(x) > 1.57079632679 1.0 > > Not sure if this a recommended way of using array or not, but it seems > to work. The problem is that any calculation you do with such an object > will result in a float, and not another numpy array (although inplace > operations work): > > In [40]: print (x*2).__class__ > <type 'numpy.float64'> > > In [41]: x *= 2 > > In [42]: print x.__class__ > <type 'numpy.ndarray'> > > So it's not a perfect solution, but it might be OK for what you need. > > Dan -- http://mail.python.org/mailman/listinfo/python-list