是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
当前回答
在Python 3中。x或Python 2.7.6
if type(x) == str:
其他回答
如果检查的不是整型和字符串,类型模块也存在。 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程序都应该是一个很好的引用:
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。
So,
你有很多选项来检查你的变量是否是字符串:
a = "my string"
type(a) == str # first
a.__class__ == str # second
isinstance(a, str) # third
str(a) == a # forth
type(a) == type('') # fifth
这个命令是有目的的。
在Python 3中。x或Python 2.7.6
if type(x) == str: