有什么区别:basetring和types.StringType之间的python区别?
isinstance(foo, types.StringType)
和
isinstance(foo, basestring)
?
有什么区别:basetring和types.StringType之间的python区别?
isinstance(foo, types.StringType)
和
isinstance(foo, basestring)
?
对于Python2:basestring
对于两个str
和unicode
基类,而types.StringType
是str
。如果你想检查是否有字符串,请使用basestring
。如果你想检查是否有字节串,请使用str
,忘记types
。
这东西是在Python3完全不同
types
不再有StringType
str
始终是unicode的
basestring
不再存在
所以尽量不要洒的东西通过您的代码,如果你太多可能需要将其端口
>>> import types
>>> isinstance(u'ciao', types.StringType)
False
>>> isinstance(u'ciao', basestring)
True
>>>
相当重要的区别,在我看来;-)。
对于Python 2.x的:
try:
basestring # added in Python 2.3
except NameError:
basestring = (str, unicode)
...
if isinstance(foo, basestring):
...
当然这可能不是为Python 3工作,但我敢肯定的2to3的转换器将采取主题的照顾。