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

isinstance(x,int);

对于整数值?


当前回答

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

其他回答

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

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

if isinstance(target, str) or isinstance(target, unicode):

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

你可以:

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')

希望这能有所帮助!

如果你不想依赖于外部库,这适用于Python 2.7+和Python 3 (http://ideone.com/uB4Kdc):

# your code goes here
s = ["test"];
#s = "test";
isString = False;

if(isinstance(s, str)):
    isString = True;
try:
    if(isinstance(s, basestring)):
        isString = True;
except NameError:
    pass;

if(isString):
    print("String");
else:
    print("Not String");
a = '1000' # also tested for 'abc100', 'a100bc', '100abc'

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

返回True

type(a) in [str, unicode]

返回True