协慌网

登录 贡献 社区

如何检查变量的类型是否为字符串?

有没有一种方法可以检查 python 中变量的类型是否为字符串。喜欢:

isinstance(x,int);

对于整数值?

答案

在 Python 2.x 中,您可以

isinstance(s, basestring)

basestringstrunicode抽象超类 。它可以用来测试一个对象是str还是unicode的实例。


在 Python 3.x 中,正确的测试是

isinstance(s, str)

在 Python 3 中, bytes类不被视为字符串类型。

我知道这是一个古老的话题,但是作为第一个显示在 Google 上的话题,鉴于我没有找到满意的答案,因此我将其留在此处以供将来参考:

第六个是 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 3.x 或 Python 2.7.6 中

if type(x) == str: