在 Python 2.x 中,您可以
isinstance(s, basestring) basestring是str和unicode的抽象超类 。它可以用来测试一个对象是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: