是否有一种方法可以检查python中变量的类型是否为字符串,例如:

isinstance(x,int);

对于整数值?


当前回答

因为在Python3中没有定义basestring,这个小技巧可能有助于使代码兼容:

try: # check whether python knows about 'basestring'
   basestring
except NameError: # no, it doesn't (it's Python3); use 'str' instead
   basestring=str

之后,您可以在Python2和Python3上运行以下测试

isinstance(myvar, basestring)

其他回答

在Python 3中。X,检查s是否是字符串的正确方法是

isinstance(s, str)

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


在Python 2中。X,正确的检查是

isinstance(s, basestring)

Basestring是STR和unicode的抽象超类。它可以用来测试一个对象是否是str或unicode的实例。

因为在Python3中没有定义basestring,这个小技巧可能有助于使代码兼容:

try: # check whether python knows about 'basestring'
   basestring
except NameError: # no, it doesn't (it's Python3); use 'str' instead
   basestring=str

之后,您可以在Python2和Python3上运行以下测试

isinstance(myvar, basestring)

如果检查的不是整型和字符串,类型模块也存在。 http://docs.python.org/library/types.html

我是这样做的:

if type(x) == type(str()):

Python 2 / 3,包括unicode

from __future__ import unicode_literals
from builtins import str  #  pip install future
isinstance('asdf', str)   #  True
isinstance(u'asdf', str)  #  True

http://python-future.org/overview.html