我尝试type(4) == type(int)
,返回False
,但print type(4)
返回<type 'int'>
,所以4显然是int
。
难以理解为什么第一个语句返回False
而不是True
?
答案 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)
您正在将int
与type(int)
进行比较,而应该:
type(4) == int
答案 4 :(得分:2)
type of int
是type
type of 4
为int
。
>>> type(int)
<type 'type'>
>>> type(4)
<type 'int'>
所以你做错了比较。
您可以做的是获得所需的输出:
将type of 4
与int
>>> type(4) == int
True
或者您可以使用is
运算符,如
>>> type(4) is int
True