首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >属性在Python类中作为所有数值操作的默认操作数。

属性在Python类中作为所有数值操作的默认操作数。
EN

Stack Overflow用户
提问于 2015-10-15 19:04:43
回答 1查看 115关注 0票数 2

我想在Python类中定义一个属性,它将用于所有数值操作(__add____mul__等):

代码语言:javascript
复制
class Example:
    def __init__(self, param1, param2):
        self.oper = param1

因此,在上面的类中,我想在所有的数值操作中使用属性oper。例如,我想实现以下行为:

代码语言:javascript
复制
>>> Example(1, 2) + Example(3, 4)
4
>>> 3 * Example(2, 10)
6

为了做到这一点,我需要实现我想要的每一个数值运算函数(__add____mul__等),还是有一种更简洁/毕达通的方法?

这里有一些上下文,如果有帮助的话:这个类应该包含几个变量(即一个随机变量,比如来自rv的scipy.stats,以及一个包含某些百分位数的字典)。如果在数值操作(例如,2 + Example(3, 10))中调用它,则应该使用字典中的一个值作为操作中的操作数,该操作将返回float

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-15 19:28:03

您可以考虑将其转换为所需的类型。

代码语言:javascript
复制
>>> class Example:
...     def __init__(self, param1, param2):
...         self.param1 = param1
...         self.param2 = param2
...     def __int__(self):
...         return self.param1

>>> 3 * int(Example(2,1))
6
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33156491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档