Python中的type(4)== type(int)是False?

时间:2016-06-24 06:23:33

标签: python python-2.7 types integer

我尝试type(4) == type(int),返回False,但print type(4)返回<type 'int'>,所以4显然是int

难以理解为什么第一个语句返回False而不是True

5 个答案:

答案 0 :(得分:10)

type的{​​{1}} 自行输入

int

您直接与>>> type(int) <type 'type'> 进行比较;毕竟,int是一种类型,如上所述:

int

或者甚至,因为>>> type(4) == int True 是单身,所有类型应该是:

int

但是,测试类型的正确方法是使用isinstance() function

>>> type(4) is int
True

>>> isinstance(4, int) True 还允许 isinstance()的任何子类通过此测试;一个子类总是被认为至少一个int。这包括您可以自己构建的任何自定义子类,并且仍然可以在代码中的其他任何位置使用int

答案 1 :(得分:2)

看看这个:

>>> type(int)
<type 'type'>
>>> type(4)
<type 'int'>

Yu应该使用:

>>> isinstance(4,int)
True

答案 2 :(得分:2)

在Python中,类型int本身也是一个类型为type的对象。因此type(int)type。另一方面,type(4)int

因此,如果您想检查type(4)是否为int类型,则应写为

type(4) == int

答案 3 :(得分:2)

您正在将inttype(int)进行比较,而应该:

type(4) == int

答案 4 :(得分:2)

type of inttype type of 4int

>>> type(int)
<type 'type'>
>>> type(4)
<type 'int'>

所以你做错了比较。 您可以做的是获得所需的输出: 将type of 4int

进行比较
>>> type(4) == int
True

或者您可以使用is运算符,如

>>> type(4) is int
True