如何使用Python 2和3兼容性检查变量是否为字符串

35 浏览
0 Comments

如何使用Python 2和3兼容性检查变量是否为字符串

这个问题已经有答案了

如何检查变量的类型是字符串?[重复]

我知道在 python-3.x 中可以使用:isinstance(x, str),但我需要在 python-2.x 中检查某个内容是否为字符串。在 python-2.x 中,isinstance(x, str)是否像期望的那样工作?还是我需要检查版本并使用isinstance(x, basestr)

具体来说,在 python-2.x 中:

>>>isinstance(u"test", str)
False

而在 python-3.x 中没有 u\"foo\"

admin 更改状态以发布 2023年5月22日
0
0 Comments

我找到的最简洁的方法,而不依赖像six这样的包,是:

try:
  basestring
except NameError:
  basestring = str

然后,假设你一直以最通用的方式检查Python 2中的字符串,

isinstance(s, basestring)

现在也适用于Python 3+。

0
0 Comments

如果你正在编写兼容2.x和3.x的代码,你可能需要使用six库: \n

from six import string_types
isinstance(s, string_types)

0