我知道我可以在python-3.x中使用:isinstance(x, str)
,但我也需要检查在python-2.x中是否也是字符串。在isinstance(x, str)
-2.x中,python会像预期的那样工作吗?或者我需要检查版本并使用isinstance(x, basestr)
具体来说,在python-2.x中:
>>>isinstance(u"test", str)
False
并且python-3.x没有u"foo"
发布于 2012-07-03 05:23:46
如果您正在编写兼容2.x和3.x的代码,则可能需要使用six
from six import string_types
isinstance(s, string_types)
发布于 2014-03-27 14:35:05
我发现的最简洁的方法不依赖于six这样的包,是:
try:
basestring
except NameError:
basestring = str
然后,假设您一直在以最通用的方式检查Python 2中的字符串,
isinstance(s, basestring)
现在也适用于Python 3+。
发布于 2015-11-14 02:40:18
这个怎么样,在所有情况下都有效?
isinstance(x, ("".__class__, u"".__class__))
https://stackoverflow.com/questions/11301138
复制相似问题