python 的内置唯一类型

Are type on python's builtin unique

我可以假设 python 的内置对象类型总是相同的吗? 示例:

type([]) == type([1,2,3,4]) == type([{1:1}, True])
type(5) == type(0) == type(2**18) == type(-951)

如果是这样,我可以在比较类型对象时使用"is"而不是“==”吗? 问题是指所有内置类型。

提前致谢!

在 Python 2 中: 一般来说,是的。然而,整数有点例外:有两种不同类型的整数:ints 和 longs。后者能够保存任意大小的整数,而前者只能保存 -2**312**31-1 之间的整数。

因此,例如,type(3) is type(2**50) 将 return False。但是,如果您使用 == 而不是 is,它会 return False 是一样的。