Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python2和python3的兼容python文本_Python - Fatal编程技术网

python2和python3的兼容python文本

python2和python3的兼容python文本,python,Python,我用python 3编写 s = '\u0300' 我得到一个unicode字符,但在python2中不起作用,我得到一个由各种字符组成的字符串 python2似乎想要: s = u'\u0300' 因此,我必须检查sys.version\u info,以了解我是在运行Python2还是3,并相应地使用前者还是后者 有没有一种方法可以在两个版本中都使用?Python3(从3.3 IIRC开始)支持u''string文本。或者你可以使用 from __future__ import unico

我用python 3编写

s = '\u0300'
我得到一个unicode字符,但在python2中不起作用,我得到一个由各种字符组成的字符串

python2似乎想要:

s = u'\u0300'
因此,我必须检查sys.version\u info,以了解我是在运行Python2还是3,并相应地使用前者还是后者

有没有一种方法可以在两个版本中都使用?Python3(从3.3 IIRC开始)支持
u''
string文本。或者你可以使用

from __future__ import unicode_literals

在Python2中获取与Python3兼容的字符串文本。此语句在Python 3中不可用。

最兼容的方法是使用
six
模块或类似的兼容垫片:

import six

s = six.u('\u0300')
six
可在PyPI上获得,并且得到了极其广泛的使用和良好的测试

另一种选择是:

from __future__ import unicode_literals 

s = '\u0300'
但是,这可能与Python2的许多期望相冲突,即字符串项可以包含字节。当
unicode\u literals
打开时,字符串文本将被静默地、几乎神奇地升级为unicode字符串。Python文化通常倾向于显式而非隐式。

来自未来的导入unicode文本(需要编辑)