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

1048 投票
22 回答
1415388 浏览
提问于 2025-04-16 10:53

有没有办法检查一个变量在Python中是不是一个string类型的,比如:

isinstance(x,int);

对于整数值来说呢?

22 个回答

117

在Python 3.x或Python 2.7.6版本中

if type(x) == str:
243

我知道这个话题已经很老了,但因为它在谷歌上是第一个显示的,而且我觉得没有哪个答案让我满意,所以我就把它留在这里,供以后参考:

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,
1550

在Python 3.x中,检查一个变量s是否是字符串的正确方法是

isinstance(s, str)

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


而在Python 2.x中,正确的检查方法是

isinstance(s, basestring)

basestringstrunicode的一个抽象父类。你可以用它来判断一个对象是否是strunicode的实例。

撰写回答