Number为int返回False

时间:2017-04-27 17:32:07

标签: python python-3.x

当我这样做时:

>>> 1 is int
False

它返回False,即使我希望它返回True。尝试对变量进行类型检查时会发生相同的行为。

>>> a = 1
>>> a is int
False

我了解这与使用is代替isinstancetype有关。

>>> type(1)
<class 'int'>
>>> isinstance(1, int)
True
>>> type(1) is int
True

有人可以解释为什么在这种情况下使用is无效吗?对我来说语义是有意义的,它会返回True而不是False

1 个答案:

答案 0 :(得分:3)

1intint类型

它们不能相同或者是同一个对象,因此is在这两个之间总是Falseis检查对象实际上是否是同一个对象。)

所以这是一个误解is检查的问题。确实正确的方法是像你一样使用isinstance