是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
当前回答
a = '1000' # also tested for 'abc100', 'a100bc', '100abc'
isinstance(a, str) or isinstance(a, unicode)
返回True
type(a) in [str, unicode]
返回True
其他回答
根据下面更好的答案进行编辑。向下走大约3个答案,找出basestring的cool值。
旧的回答: 注意unicode字符串,可以从多个地方获得,包括Windows中的所有COM调用。
if isinstance(target, str) or isinstance(target, unicode):
其他人在这里提供了很多很好的建议,但我没有看到一个好的跨平台总结。下面的代码对于任何Python程序都应该是一个很好的引用:
def isstring(s):
# if we use Python 3
if (sys.version_info[0] >= 3):
return isinstance(s, str)
# we use Python 2
return isinstance(s, basestring)
在这个函数中,我们使用isinstance(object, classinfo)来查看输入是python3中的str还是python2中的basestring。
我是这样做的:
if type(x) == type(str()):
您可以简单地使用isinstance函数来确保输入数据的格式为字符串或unicode。下面的例子会帮助你更容易理解。
>>> isinstance('my string', str)
True
>>> isinstance(12, str)
False
>>> isinstance('my string', unicode)
False
>>> isinstance(u'my string', unicode)
True
如果检查的不是整型和字符串,类型模块也存在。 http://docs.python.org/library/types.html