我很确定我做了一些愚蠢的事情,却无法弄清楚它是什么。
predict = fn_abc(data)
In[3]: predict
Out[3]: array([2])
In[4]: type(predict)
Out[4]: numpy.ndarray
现在用int
predict = int(fn_abc(data))
In[6]: predict
Out[6]: 2
In[7]: type(predict)
Out[7]: int
In[8]: predict is int
Out[8]: False
我做错了什么?
答案 0 :(得分:4)
使用isinstance。
isinstance(predict, int)
答案 1 :(得分:3)
predict is int
检查整数是否与整数类型对象具有相同的标识。它不是。但是,该整数类型等于整数类型对象。检查整数类型是否等于整数类型对象。
>>> type(2) == int
True
您可以扩展此检查以使用内置函数isinstance()
处理子类:
>>> isinstance(2, int)
True
>>> isinstance(True, int)
True
第二个测试检查True
是否是整数的实例。由于bool
是int
的子类,因此这是准确的。这对于用户定义的类很有用 - 如果你有一个带有Person
子类的Customer
类,isinstance()
会告诉你一个Customer
对象也是{{1} }}。但是,并非所有Person
个对象都是Person
个对象,因此它不是可交换的(如下所示Customer
和整数):
bool
答案 2 :(得分:2)
type(predict) is int
预测是2; 是int 检查其他项目是类型' int' ,但 2 不是类型。
还有一种 isinstance 方法会更好。