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 中:
一般来说,是的。然而,整数有点例外:有两种不同类型的整数:int
s 和 long
s。后者能够保存任意大小的整数,而前者只能保存 -2**31
到 2**31-1
之间的整数。
因此,例如,type(3) is type(2**50)
将 return False
。但是,如果您使用 ==
而不是 is
,它会 return False
是一样的。
我可以假设 python 的内置对象类型总是相同的吗? 示例:
type([]) == type([1,2,3,4]) == type([{1:1}, True])
type(5) == type(0) == type(2**18) == type(-951)
如果是这样,我可以在比较类型对象时使用"is"而不是“==”吗? 问题是指所有内置类型。
提前致谢!
在 Python 2 中:
一般来说,是的。然而,整数有点例外:有两种不同类型的整数:int
s 和 long
s。后者能够保存任意大小的整数,而前者只能保存 -2**31
到 2**31-1
之间的整数。
因此,例如,type(3) is type(2**50)
将 return False
。但是,如果您使用 ==
而不是 is
,它会 return False
是一样的。