我可以假设python内置的类型对象总是一样吗? 实施例:python的内置类型是独一无二的
type([]) == type([1,2,3,4]) == type([{1:1}, True])
type(5) == type(0) == type(2**18) == type(-951)
如果是这样,我可以用“是”,而不是“==”进行比较时,类型对象? 问题在于所有内建类型。
在此先感谢!
我可以假设python内置的类型对象总是一样吗? 实施例:python的内置类型是独一无二的
type([]) == type([1,2,3,4]) == type([{1:1}, True])
type(5) == type(0) == type(2**18) == type(-951)
如果是这样,我可以用“是”,而不是“==”进行比较时,类型对象? 问题在于所有内建类型。
在此先感谢!
在Python 2中: 一般来说,是的。但是,整数是一个例外:有两种不同类型的整数:int
s和long
s。后者能够保持整数达到任意大小,而前者只能保持-2**31
至2**31-1
之间的整数。
因此,例如,type(3) is type(2**50)
将返回False
。但是,如果您使用==
而不是is
,它将返回False
。
明确检查类型将拒绝所有的子类。如果你需要做类型检查而不是鸭子打字,一般你应该使用'isinstance'和'issubclass'。 – eryksun