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

isinstance(x,int);

对于整数值?


当前回答

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

其他回答

a = '1000' # also tested for 'abc100', 'a100bc', '100abc'

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

返回True

type(a) in [str, 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

这个命令是有目的的。

我是这样做的:

if type(x) == type(str()):

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

以下是我对同时支持Python 2和Python 3的回答,以及这些要求:

用Py3代码编写,使用最少的Py2 compat代码。 稍后不中断地删除Py2 compat代码。也就是说,只删除Py3代码,不修改。 避免使用六个或类似的compat模块,因为他们往往隐藏什么 就是努力去实现。 未来的潜在的Py4。


import sys
PY2 = sys.version_info.major == 2

# Check if string (lenient for byte-strings on Py2):
isinstance('abc', basestring if PY2 else str)

# Check if strictly a string (unicode-string):
isinstance('abc', unicode if PY2 else str)

# Check if either string (unicode-string) or byte-string:
isinstance('abc', basestring if PY2 else (str, bytes))

# Check for byte-string (Py3 and Py2.7):
isinstance('abc', bytes)