Numpy提供了通过
from .numeric import absolute as abs
似乎明显违反了the zen of python:
There should be one-- and preferably only one --obvious way to do it.
所以我想这是有原因的。
我个人在几乎所有的代码中都使用了np.abs
,例如,查看堆栈溢出时np.abs与np.absolute的搜索结果数量,似乎绝大多数都是这样做的(2130次与244次点击)。
在我的代码中,我应该优先使用np.absolute
而不是np.abs
,还是应该只使用更“标准”的np.abs
?
很可能是因为有一个同名的内置函数,^{} 。这同样适用于
np.amax
、np.amin
和np.round_
。NumPy函数^{}, ^{}, ^{} and ^{} 的别名仅在顶级包中定义。
所以
np.abs
和np.absolute
是完全相同的。你用哪一个无关紧要。短名称有几个优点:它们较短,Python程序员知道它们,因为它们的名称与内置的Python函数相同。所以最终用户更容易(少打字,少记忆)。
但是也有理由使用不同的名称:NumPy(或者通常是第三方包)有时需要Python函数} 来解决这个问题,以便在隐藏了内置名称的情况下访问内置函数。
abs
,min
,等等。因此在包中,它们用不同的名称定义函数,这样您仍然可以访问Python函数——而在包的顶层,您可以公开“快捷方式”。注意:在这种情况下,不同的名称并不是唯一可用的选项:可以使用Python模块^{也可能是这样的(但这纯粹是我的猜测),它们最初只包括长名称的函数
absolute
(等等),后来只添加了短别名。作为一个大型且使用良好的库,NumPy开发人员不会轻易地删除或弃用东西。因此,他们可能只保留长名称,因为如果删除它们,它可能会破坏旧代码/脚本。相关问题 更多 >
编程相关推荐