基本上我想这样做:
obj = 'str'
type ( obj ) == string
我试着:
type ( obj ) == type ( string )
但这并没有起作用。
还有,其他类型的呢?例如,我无法复制NoneType。
基本上我想这样做:
obj = 'str'
type ( obj ) == string
我试着:
type ( obj ) == type ( string )
但这并没有起作用。
还有,其他类型的呢?例如,我无法复制NoneType。
当前回答
对于其他类型,请查看types模块:
>>> import types
>>> x = "mystring"
>>> isinstance(x, types.StringType)
True
>>> x = 5
>>> isinstance(x, types.IntType)
True
>>> x = None
>>> isinstance(x, types.NoneType)
True
注:类型检查是个坏主意。
其他回答
我想这个就可以了
if isinstance(obj, str)
使用str代替string
type ( obj ) == str
解释
>>> a = "Hello"
>>> type(a)==str
True
>>> type(a)
<type 'str'>
>>>
我用type(x) == type(y)
例如,如果我想检查一个数组:
type( x ) == type( [] )
字符串检查:
type( x ) == type( '' ) or type( x ) == type( u'' )
如果您想检查None,请使用is
x is None
Type在某些类上不起作用。如果你不确定对象的类型,使用__class__方法,如下所示:
>>>obj = 'a string'
>>>obj.__class__ == str
True
也请参阅这篇文章- http://www.siafoo.net/article/56
你很接近了!字符串是模块,不是类型。你可能想比较obj的类型和字符串的类型对象,即str:
type(obj) == str # this works because str is already a type
另外:
type(obj) == type('')
注意,在python2中,如果obj是unicode类型,那么上述两种方法都不能工作。isinstance()也不会。看看约翰对这篇文章的评论,了解如何解决这个问题……我已经试着记住它大约10分钟了,但是有一个记忆块!