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

有没有一种方法可以在Python中检查一个变量的类型是否是字符串。

isinstance(x,int);

整数值?

在Python 2.x中,你可以这样做

isinstance(s, basestring)

basestringstrunicode的[抽象超类](https://docs.python.org/2/library/functions.html#basestring)。它可以用来测试一个对象是否是 strunicode 的实例。


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

isinstance(s, str)

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

评论(6)

如果你要检查的不仅仅是ints和string,类型模块也存在。 http://docs.python.org/library/types.html

评论(2)

根据下面更好的答案进行编辑。 往下看大约3个答案,发现basetring的酷。

旧答案。 注意unicode字符串,你可以从几个地方得到它,包括Windows中的所有COM调用。

if isinstance(target, str) or isinstance(target, unicode):
评论(4)