是否有一种方法可以检查python中变量的类型是否为字符串,例如:
isinstance(x,int);
对于整数值?
是否有一种方法可以检查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)
其他回答
总结:
如果你既想要Python2又想要Python3,并且还想要包含unicode,似乎没有一种可移植的方法来做到这一点。我最后用了这个习语:
# Near the top of my program
if sys.version_info[0] >= 3:
basestring = str
然后,任何时候我想测试一个对象,看看它是否是字符串:
if isinstance(obj, basestring):
...
坦率地说,Python3删除了basestring和types.StringTypes,这让我有点震惊。我认为没有理由放弃他们,留下他们中的任何一个都会使这个问题得到解决。
我还想注意,如果你想检查一个变量的类型是否是特定的类型,你可以将变量的类型与一个已知对象的类型进行比较。
对于字符串,你可以使用这个
type(s) == type('')
因为在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 2的另一种方法,不使用basestring:
isinstance(s, (str, unicode))
但仍然不能在Python 3中工作,因为unicode没有定义(在Python 3中)。
你可以:
var = 1
if type(var) == int:
print('your variable is an integer')
or:
var2 = 'this is variable #2'
if type(var2) == str:
print('your variable is a string')
else:
print('your variable IS NOT a string')
希望这能有所帮助!