我们如何/为啥使用 operator.abs

Posted

技术标签:

【中文标题】我们如何/为啥使用 operator.abs【英文标题】:How/why do we use operator.abs我们如何/为什么使用 operator.abs 【发布时间】:2014-03-13 18:03:38 【问题描述】:

operators 模块中,我们有一个辅助方法operator.abs。但是在 python 中,abs 已经是一个函数,而我知道在对象上调用__abs__ 方法的唯一方法是无论如何调用函数。

还有其他一些我不知道的奇特方法来获取数字的绝对值吗?如果没有,为什么首先存在operator.abs,以及您必须使用它而不是普通的旧abs 的示例是什么?

【问题讨论】:

简单的答案:不是真的,可能是为了连续性,如果你用过operator函数,不适用。 一致性;所有__special__ 函数都有等效的special 函数别名。 不,他们没有。这是不一致的。 【参考方案1】:

腹肌(...) abs(a) -- 与 abs(a) 相同。

不,我不认为还有其他你不知道的奇特方式,或者除了一致性之外根本没有任何理由让它出现在这里(因为 operator 有其他 @987654322 的方法@s)。

【讨论】:

但按照这种逻辑,我们应该拥有operator.__hex__ 和许多其他人。这似乎是其中唯一的一个已经是函数的。 @wim:它在 Python 3 中使用__index__,并且operator.index 存在。 @wim: touche,有一个__hex__ 方法。然后提出问题并询问为什么没有添加hex,但添加了abs。他们会告诉你它在 Python 3 中已经消失了。 @wim:确实触动了!我的下一个最佳猜测是绝对值是一个(常见的)数学运算符,但散列不是——它几乎完全是计算机的事情。 @wim:我不这么认为,反正operator 模块是在1.5 中引入的,而abs 内置函数在那之前就已经存在了。

以上是关于我们如何/为啥使用 operator.abs的主要内容,如果未能解决你的问题,请参考以下文章

应该使用哪个 npm 模块在节点 js 中向 Apple(iphone) 发送推送通知,我们为啥以及如何实现这一点?

为啥我们使用 CPU 而不是 GPU 进行光线追踪?

为啥我们需要使用rabbitmq

为啥我们使用内部类?

如何更改 chrome 打包的应用程序 ID 或者为啥我们需要 manifest.json 中的 key 字段?

为啥我们没有 UIBarMetricsLandscapePad?