微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 isinstance 测试所有可能的整数类型

如何解决如何使用 isinstance 测试所有可能的整数类型

处理整数时,有多种类型可用(例如 int、numpy.int8、numpy.int16 等)。如果我编写了一个需要一个变量为整数的泛型函数,我如何针对 Python/numpy 中所有可能的“整数”类型测试该类型?关于浮动也可以问同样的问题。一开始我是这么想的

isinstance(np.int64(5),int)

会/应该会起作用,但不会。

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

解决方法

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

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

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

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

您可以分别使用 numbers.Integralnumbers.Real

from numbers import Integral,Real

isinstance(x,Integral)
isinstance(x,Real)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。