我想对python3中的float
数据类型进行子类化。我的目标是生成一个返回其原始值的变量,+/-某个范围。通过其他讨论,我知道我可以:
class MonteCarloVariable(float):
def __new__(cls, mean, std):
val = np.random.normal(mean, std)
return super(MonteCarloVariable, cls).__new__(cls, val)
这给了我:
>>> a = MonteCarloVariable(10, 2)
>>> a
7.5
我想要的是,a
每次使用它时都会改变值。i、 电子邮件:
>>> a
9.3
>>> a
11.6
。。。等等
如果这是不可能的,我将如何添加一个函数来强制更改?比如:
>>> a
7.5
>>> a.roll()
>>> a
10.1
我尝试将float
子类化的原因是我不想重新定义每个__add__
和__sub__
类型的函数。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐