是否有一种方法可以检查python中变量的类型是否为字符串,例如:

isinstance(x,int);

对于整数值?


当前回答

>>> thing = 'foo'
>>> type(thing).__name__ == 'str' or type(thing).__name__ == 'unicode'
True

其他回答

我知道这是一个老话题,但作为谷歌上的第一个,鉴于我对任何一个答案都不满意,我将把这个留在这里供将来参考:

six是一个Python 2和3兼容性库,已经涵盖了这个问题。然后你可以这样做:

import six

if isinstance(value, six.string_types):
    pass # It's a string !!

检查代码,如下所示:

import sys

PY3 = sys.version_info[0] == 3

if PY3:
    string_types = str,
else:
    string_types = basestring,

你可以:

var = 1
if type(var) == int:
   print('your variable is an integer')

or:

var2 = 'this is variable #2'
if type(var2) == str:
    print('your variable is a string')
else:
    print('your variable IS NOT a string')

希望这能有所帮助!

>>> thing = 'foo'
>>> type(thing).__name__ == 'str' or type(thing).__name__ == 'unicode'
True

根据下面更好的答案进行编辑。向下走大约3个答案,找出basestring的cool值。

旧的回答: 注意unicode字符串,可以从多个地方获得,包括Windows中的所有COM调用。

if isinstance(target, str) or isinstance(target, unicode):
a = '1000' # also tested for 'abc100', 'a100bc', '100abc'

isinstance(a, str) or isinstance(a, unicode)

返回True

type(a) in [str, unicode]

返回True