博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

python2和python3中str,bytes区别

Posted on 2017-10-17 14:20  开飞机的贝塔  阅读(3557)  评论(0编辑  收藏  举报

python2中,有basestring、str、bytes、unicode四种类型

其中str == bytes ,basestring = (str,unicode)

>>> isinstance('s',str)
True
>>> isinstance('s',bytes)
True
>>> isinstance('s',unicode)
False
>>> isinstance('s'.decode(),unicode)
True
>>> isinstance('s'.decode(),basestring)
True
>>> isinstance('s',basestring)
True
 

 

python3中,有str和bytes类型

>>> isinstance('s',str)
True
>>> isinstance('s',bytes)
False
>>> isinstance('s',unicode)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'unicode' is not defined
>>> isinstance(b's',bytes)
True
>>> isinstance('s',basestring)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'basestring' is not defined