【发布时间】:2016-10-10 03:47:21
【问题描述】:
我需要测试变量是否为int 类型,或np.int*、np.uint* 中的任何一个,最好使用单个条件(ie no or)。
经过一些测试,我猜是:
-
isinstance(n, int)将仅匹配int和np.int32(或np.int64,具体取决于平台), -
np.issubdtype(type(n), int)似乎匹配所有int和np.int*,但不匹配np.uint*。
这导致了两个问题:np.issubdtype 会匹配任何类型的有符号整数吗?可以在一次检查中确定一个数字是任何类型的有符号整数还是无符号整数?
这是关于 整数 的测试,该测试应返回 False 以获取 float-likes。
【问题讨论】:
-
如果您想避免导入 NumPy,请考虑使用
isinstance(n, numbers.Integral)。