首页 > 解决方案 > 如何使用 isinstance 测试所有可能的整数类型

问题描述

使用整数时,有多种类型可用(例如 int、numpy.int8、numpy.int16 等)。如果我编写一个需要一个变量为整数的通用函数,我如何针对 Python/numpy 中所有可能的“整数”类型测试该类型?关于花车也可以问同样的问题。我最初认为这是

isinstance(np.int64(5), int)

会/应该工作,但事实并非如此。

有没有办法可以测试所有可用整数类型的整数变量?

标签: pythonpython-3.xnumpytypesisinstance

解决方案


Python中只有一种int类型。如果要测试 中的所有整数类型numpy,加上内置int类型,可以使用:

isinstance(x, (int, np.integer))

wherenp.integer是所有标量 numpy 整数类型的抽象基类。同样对于浮动,

isinstance(x, (float, np.floating))

推荐阅读