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

isinstance(x,int);

对于整数值?


当前回答

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

其他回答

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

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,

在Python 3中。x或Python 2.7.6

if type(x) == str:

在Python 3中。X,检查s是否是字符串的正确方法是

isinstance(s, str)

在Python 3中,bytes类不被认为是字符串类型。


在Python 2中。X,正确的检查是

isinstance(s, basestring)

Basestring是STR和unicode的抽象超类。它可以用来测试一个对象是否是str或unicode的实例。

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

So,

你有很多选项来检查你的变量是否是字符串:

a = "my string"
type(a) == str # first 
a.__class__ == str # second
isinstance(a, str) # third
str(a) == a # forth
type(a) == type('') # fifth

这个命令是有目的的。