python3 中使用部分python2中的一些代码 报错 NameError: name 'unicode' is not defined

python3 中使用部分python2中的一些代码 报错 NameError: name 'unicode' is not defined 这种情况怎么处理?

Python 3中的str类型对象有点像Python 2中的unicode。

Python 3中的str是未编码的,str有一个encode方法,调用这个方法后将产生一个编码后的byte类型的字符串(这有点像Python 2中的str)。而byte类型的字符串支持解码操作。

    Python

    Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

    Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。

    Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

    7月20日,IEEE发布2017年编程语言排行榜:Python高居首位。

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-01
Python 3中的str类型对象有点像Python 2中的unicode。

Python 3中的str是未编码的,str有一个encode方法,调用这个方法后将产生一个编码后的byte类型的字符串(这有点像Python 2中的str)。而byte类型的字符串支持解码操作。

例如:

1
2
3
4
5
6
7
8
9
10
11
12

>>> s = '海阔天空'
>>> hasattr(s, 'decode')
False
>>> bs = s.encode('utf-8')
>>> type(bs)
<class 'bytes'>
>>> bs
b'\xe6\xb5\xb7\xe9\x98\x94\xe5\xa4\xa9\xe7\xa9\xba'
>>> hasattr(bs, 'encode')
False
>>> bs.decode('utf-8')
'海阔天空'

注意:Python 3中str不再具有decode方法,因为它存储的是“未编码”的字符串。decode操作交由byte完成了。本回答被网友采纳
第2个回答  2016-06-01
找到这行代码,直接删了试一下,python3默认使用uncode字串
相似回答