其实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文章
1015浏览量
56657 -
字符串
+关注
关注
1文章
594浏览量
23044 -
python
+关注
关注
57文章
4858浏览量
89587
发布评论请先 登录
新手Python学习该学Python2还是Python3
python2和python3是如何互相切换的
python2与python3问题的分析
python字符串拼接方式了解
python3如何取出重复3次的字符串保存为3列
python2与python3到底有什么区别
什么是复制字符串?Python如何复制字符串
python字符串有哪些特定方法
Python字符编码转换

Python2与Python3中对字符串的支持
评论