我想在Python类中定义一个属性,它将用于所有数值操作(__add__、__mul__等):
class Example:
def __init__(self, param1, param2):
self.oper = param1因此,在上面的类中,我想在所有的数值操作中使用属性oper。例如,我想实现以下行为:
>>> Example(1, 2) + Example(3, 4)
4
>>> 3 * Example(2, 10)
6为了做到这一点,我需要实现我想要的每一个数值运算函数(__add__、__mul__等),还是有一种更简洁/毕达通的方法?
这里有一些上下文,如果有帮助的话:这个类应该包含几个变量(即一个随机变量,比如来自rv的scipy.stats,以及一个包含某些百分位数的字典)。如果在数值操作(例如,2 + Example(3, 10))中调用它,则应该使用字典中的一个值作为操作中的操作数,该操作将返回float。
发布于 2015-10-15 19:28:03
您可以考虑将其转换为所需的类型。
>>> class Example:
... def __init__(self, param1, param2):
... self.param1 = param1
... self.param2 = param2
... def __int__(self):
... return self.param1
>>> 3 * int(Example(2,1))
6https://stackoverflow.com/questions/33156491
复制相似问题