改变浮动实例的内容?
Alter the content of a float instance?
我想修改 float 实例的值如下:
>>>%paste
class MyFloat(float):
def foo(self):
self = self + 1
>>> f = MyFloat(41)
>>> f.foo()
>>> f
41.0
很遗憾self += 1
不起作用
我假设内置对象是不可变的,甚至 f.__add(1)
也会 return 一个新的 float 实例。我说得对吗?
我需要一个容器来表示从 USB 设备获取的测量值的锁存值。一旦值被锁定,我就会得到一个带有其他方法的浮点数,例如 Update
方法从设备或 units
获取新的测量值,return 是测量单位。我想在执行 Update
方法时更新实例的内容。如果浮动是不可变的并且没有办法扭转这一点。我可能需要在 GetNewMeasurement
中重命名我的 Update
,这将 return 实际对象的新实例。接下来可能会问第二个问题Why do I need an Update method?
。测量与几个参数相关联:设备地址、寄存器名称、测量类型、获取测量时设备的配置……要在完全相同的条件下获得新的测量,我需要知道所有这些参数。
在 Standard type hierarchy 上 Python 的参考手册上,我读到 numbers.Number
是不可变的。我不知道它是否也适用于花车以及 numbers.Real
是否与 float
相同。也许可以有一个不是不可变的 float
的派生版本。
浮点数是不可变的,你是对的。
dir(float)
>>>[, 'real']
您可以将该属性用于 return 一个新的、递增的引用。
我想修改 float 实例的值如下:
>>>%paste
class MyFloat(float):
def foo(self):
self = self + 1
>>> f = MyFloat(41)
>>> f.foo()
>>> f
41.0
很遗憾self += 1
不起作用
我假设内置对象是不可变的,甚至 f.__add(1)
也会 return 一个新的 float 实例。我说得对吗?
我需要一个容器来表示从 USB 设备获取的测量值的锁存值。一旦值被锁定,我就会得到一个带有其他方法的浮点数,例如 Update
方法从设备或 units
获取新的测量值,return 是测量单位。我想在执行 Update
方法时更新实例的内容。如果浮动是不可变的并且没有办法扭转这一点。我可能需要在 GetNewMeasurement
中重命名我的 Update
,这将 return 实际对象的新实例。接下来可能会问第二个问题Why do I need an Update method?
。测量与几个参数相关联:设备地址、寄存器名称、测量类型、获取测量时设备的配置……要在完全相同的条件下获得新的测量,我需要知道所有这些参数。
在 Standard type hierarchy 上 Python 的参考手册上,我读到 numbers.Number
是不可变的。我不知道它是否也适用于花车以及 numbers.Real
是否与 float
相同。也许可以有一个不是不可变的 float
的派生版本。
浮点数是不可变的,你是对的。
dir(float)
>>>[, 'real']
您可以将该属性用于 return 一个新的、递增的引用。