其实Python3中对字符串支持的改进,不仅仅是更改了默认编码,而是重新进行了字符串的实现,而且它已经实现了对UNICODE的内置支持,从这方面来讲Python已经和JAVA一样优秀。下面我们来看下Python2与Python3中对字符串的支持有什么区别:
Python2
Python2中对字符串的支持由以下三个类提供
class basestring(object)
class str(basestring)
class unicode(basestring)
执行help(str)和help(bytes)会发现结果都是str类的定义,这也说明Python2中str就是字节串,而后来的unicode对象对应才是真正的字符串。
#!/usr/bin/envpython
#-*-coding:utf-8-*-
a=
'你好'
b=
u'你好'
print(type(a),len(a))
print(type(b),len(b))
输出结果:
(
<>
'str'>,
6
)
(
<>
'unicode'>,
2
)
Python3
Python3中对字符串的支持进行了实现类层次的上简化,去掉了unicode类,添加了一个bytes类。从表面上来看,可以认为Python3中的str和unicode合二为一了。
class
bytes
(
object
)
class
str
(
object
)
实际上,Python3中已经意识到之前的错误,开始明确的区分字符串与字节。因此Python3中的str已经是真正的字符串,而字节是用单独的bytes类来表示。也就是说,Python3默认定义的就是字符串,实现了对UNICODE的内置支持,减轻了程序员对字符串处理的负担。
#!/usr/bin/envpython
#-*-coding:utf-8-*-
a=
'你好'
b=
u'你好'
c=
'你好'
.encode(
'gbk'
)
print(type(a),len(a))
print(type(b),len(b))
print(type(c),len(c))
输出结果:
<
class
'
str
'>2
<
class
'
str
'>2
<
class
'
bytes
'>4
-
编码
+关注
关注
6文章
940浏览量
54807 -
字符串
+关注
关注
1文章
578浏览量
20505 -
python
+关注
关注
56文章
4792浏览量
84613
发布评论请先 登录
相关推荐
评论