a='aaaa'
print isinstance(a, basestring)#true
print isinstance(a, str)#true
在 3.0 之前的 Python 版本中,有两种字符串“纯字符串”和“unicode 字符串”。纯字符串 (str
) 不能表示拉丁字母以外的字符(为简单起见,忽略代码页的详细信息)。 Unicode 字符串 (unicode
) 可以表示任何字母表中的字符,包括一些虚构的字母表,例如克林贡语。
那么为什么有两种字符串,只使用 Unicode 不是更好吗,因为这样可以涵盖所有情况?好吧,最好只使用 Unicode,但 Python 是在 Unicode 成为表示字符串的首选方法之前创建的。在一个有很多用户的语言中,字符串类型的转换是需要时间的,在Python 3.0中终于实现了所有字符串都是Unicode的。
3.0之前的Python字符串的继承层次是:
object
|
|
basestring
/ \
/ \
str unicode
Python 2.3 中引入的 'basestring' 可以被认为是朝着字符串统一方向迈出的一步,因为它可以用来检查一个对象是否是以下对象的实例str
or unicode
>>> string1 = "I am a plain string"
>>> string2 = u"I am a unicode string"
>>> isinstance(string1, str)
True
>>> isinstance(string2, str)
False
>>> isinstance(string1, unicode)
False
>>> isinstance(string2, unicode)
True
>>> isinstance(string1, basestring)
True
>>> isinstance(string2, basestring)
True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)