【发布时间】:2011-09-06 11:53:30
【问题描述】:
int_、float_等中的下划线后缀有什么意义?
【问题讨论】:
-
我想是这样他们就不会与内置函数发生冲突。这与您不会创建自己的名为
list的类的原因相同。
标签: python numpy naming-conventions
int_、float_等中的下划线后缀有什么意义?
【问题讨论】:
list 的类的原因相同。
标签: python numpy naming-conventions
来自Guide to Numpy 的第 21 页,作者:TE Oliphant:
数据类型的名称 与标准 Python 对象冲突 名称后跟一个尾随 下划线,''。这些数据类型是 如此命名是因为它们使用相同的 基础精度作为 对应的 Python 数据类型。
。 . .
数组类型
bool_、int_、complex_、float_、object_、unicode_和str_是增强标量。他们很 类似于标准的 Python 类型 (没有尾随下划线)和 从他们那里继承(bool_和object_)。它们可以用来代替 标准的 Python 类型 想要的。每当数据类型是 需要,作为参数,标准 Python 类型也被识别。
【讨论】:
如果您不确定您的变量是标量、列表还是数组,使用带有“_”的变量将确保您的代码无论如何都可以正常工作(如果这是您想要的行为)。请参阅下面的示例代码。
import numpy as np
scalar = 3
L1 = [3]
L2 = [1, 2, 3]
np.float(scalar) # okay
np.float(L1) # breaks (TypeError)
np.float(L2) # breaks (TypeError)
np.float_(scalar) # okay
np.float_(L1) # okay
np.float_(L2) # okay
【讨论】: