是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
当前回答
Python 2的另一种方法,不使用basestring:
isinstance(s, (str, unicode))
但仍然不能在Python 3中工作,因为unicode没有定义(在Python 3中)。
其他回答
因为在Python3中没有定义basestring,这个小技巧可能有助于使代码兼容:
try: # check whether python knows about 'basestring'
basestring
except NameError: # no, it doesn't (it's Python3); use 'str' instead
basestring=str
之后,您可以在Python2和Python3上运行以下测试
isinstance(myvar, basestring)
>>> thing = 'foo'
>>> type(thing).__name__ == 'str' or type(thing).__name__ == 'unicode'
True
我还想注意,如果你想检查一个变量的类型是否是特定的类型,你可以将变量的类型与一个已知对象的类型进行比较。
对于字符串,你可以使用这个
type(s) == type('')
Python 2的另一种方法,不使用basestring:
isinstance(s, (str, unicode))
但仍然不能在Python 3中工作,因为unicode没有定义(在Python 3中)。
我是这样做的:
if type(x) == type(str()):