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

isinstance(x,int);

对于整数值?


当前回答

如果检查的不是整型和字符串,类型模块也存在。 http://docs.python.org/library/types.html

其他回答

s = '123'
issubclass(s.__class__, str)

我还想注意,如果你想检查一个变量的类型是否是特定的类型,你可以将变量的类型与一个已知对象的类型进行比较。

对于字符串,你可以使用这个

type(s) == type('')

Python 2的另一种方法,不使用basestring:

isinstance(s, (str, unicode))

但仍然不能在Python 3中工作,因为unicode没有定义(在Python 3中)。

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

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,
a = '1000' # also tested for 'abc100', 'a100bc', '100abc'

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

返回True

type(a) in [str, unicode]

返回True