我们如何/为什么使用operator.abs?

7
operators模块中,我们有一个帮助方法operator.abs。但在Python中,abs已经是一个函数,我知道调用对象的__abs__方法的唯一方法是通过函数调用。是否有其他高级的方法来获取数的绝对值呢?如果没有,为什么operator.abs首先存在,且在什么情况下需要使用它而不是普通的abs呢?

1
简单回答:不是很可能,如果你已经使用了“operator”函数,那么可能是为了保持连续性,但这并不适用。 - anon582847382
一致性;所有的__special__函数都有等效的special函数别名。 - Martijn Pieters
不,他们没有。这是不一致的。 - wim
1个回答

2

绝对值(...)
    abs(a) -- 和 abs(a) 相同。

不,我不认为有其他你不知道的花哨方法,或者真正存在任何原因让它存在,除了保持一致性(因为 operator 有其他 __operator__ 的方法)。


@wim:hex() 函数使用了名为 __hex__ 的方法吗? - Ry-
1
@wim:在Python 3中,它使用__index__,并且存在operator.index - Ry-
1
@wim:没错,有一个__hex__方法。然后提交一个问题并询问为什么添加了abs但没有添加hex。他们会告诉你它在Python 3中已经被删除了。 - Martijn Pieters
1
@wim:确实如此!我猜下一个最好的答案是绝对值是一个(常见的)数学运算符,但哈希不是 - 它几乎严格属于计算机领域。 - Ry-
1
@wim:我不这么认为,而且operator模块是在1.5中引入的,而abs内置函数早在那之前就已经存在了。 - RemcoGerlich
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接