是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
当前回答
>>> thing = 'foo'
>>> type(thing).__name__ == 'str' or type(thing).__name__ == 'unicode'
True
其他回答
如果检查的不是整型和字符串,类型模块也存在。 http://docs.python.org/library/types.html
在Python 3中。X,检查s是否是字符串的正确方法是
isinstance(s, str)
在Python 3中,bytes类不被认为是字符串类型。
在Python 2中。X,正确的检查是
isinstance(s, basestring)
Basestring是STR和unicode的抽象超类。它可以用来测试一个对象是否是str或unicode的实例。
我看过:
hasattr(s, 'endswith')
我知道这是一个老话题,但作为谷歌上的第一个,鉴于我对任何一个答案都不满意,我将把这个留在这里供将来参考:
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,
根据下面更好的答案进行编辑。向下走大约3个答案,找出basestring的cool值。
旧的回答: 注意unicode字符串,可以从多个地方获得,包括Windows中的所有COM调用。
if isinstance(target, str) or isinstance(target, unicode):