我们如何/为啥使用 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) 发送推送通知,我们为啥以及如何实现这一点?