如何使用 isinstance 测试所有可能的整数类型
How to use isinstance to test all possible integer types
处理整数时,有多种可用类型(例如 int、numpy.int8、numpy.int16 等)。如果我编写一个要求一个变量为整数的通用函数,我如何针对 Python/numpy 中所有可能的“整数”类型测试该类型?关于花车也可以问同样的问题。我最初是这样想的
isinstance(np.int64(5), int)
would/should 有效,但无效。
有没有一种方法可以测试所有种可用整数类型的整数变量?
在Python中只有一个int
类型。如果要测试numpy
中的所有整数类型,加上内置的int
类型,可以使用:
isinstance(x, (int, np.integer))
其中 np.integer
是所有标量 numpy 整数类型的抽象基础 class。同样对于浮点数,
isinstance(x, (float, np.floating))
可以分别使用numbers.Integral
and numbers.Real
:
from numbers import Integral, Real
isinstance(x, Integral)
isinstance(x, Real)
处理整数时,有多种可用类型(例如 int、numpy.int8、numpy.int16 等)。如果我编写一个要求一个变量为整数的通用函数,我如何针对 Python/numpy 中所有可能的“整数”类型测试该类型?关于花车也可以问同样的问题。我最初是这样想的
isinstance(np.int64(5), int)
would/should 有效,但无效。
有没有一种方法可以测试所有种可用整数类型的整数变量?
在Python中只有一个int
类型。如果要测试numpy
中的所有整数类型,加上内置的int
类型,可以使用:
isinstance(x, (int, np.integer))
其中 np.integer
是所有标量 numpy 整数类型的抽象基础 class。同样对于浮点数,
isinstance(x, (float, np.floating))
可以分别使用numbers.Integral
and numbers.Real
:
from numbers import Integral, Real
isinstance(x, Integral)
isinstance(x, Real)