使用__future__实现从python2.7到python3.x的过渡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用__future__实现从python2.7到python3.x的过渡相关的知识,希望对你有一定的参考价值。

参考链接:http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386820023084e5263fe54fde4e4e8616597058cc4ba1000

在python2.7到3.x有一些不兼容的改动,如果直接升级python的版本,会导致一些旧版本的python代码不可执行;为了解决这一问题,python社区开发了__future__模块;

 

1.字符串兼容

在python2.7中,任意创建的字符串对象,比如a=‘str1‘,默认都表示字符串类型,如果需要将其转换为unicode码,就需要在字符串前面加上u,即a=u‘str1‘;

在python3.x中,任意创建的字符串,默认都是unicode码的,

from __future__ import unicode_literals
print ‘\‘xxx\‘ is unicode?‘,isinstance(‘xxx‘,unicode)
print ‘u\‘xxx\‘ is unicode?‘,isinstance(u‘xxx‘,unicode)
print ‘\‘xxx\‘ is str?‘,isinstance(‘xxx‘,str)
print ‘b\‘xxx\‘ is str?‘,isinstance(b‘xxx‘,str)


结果:
‘xxx‘ is unicode? True
u‘xxx‘ is unicode? True
‘xxx‘ is str? False
b‘xxx‘ is str? True

 

2、除法兼容

python2的地板除法,默认会只保留整数部分,如果要保留小数部分,需要

 

以上是关于使用__future__实现从python2.7到python3.x的过渡的主要内容,如果未能解决你的问题,请参考以下文章

在 Python2.7 中应用 Async

python之使用__future__(解决版本不同,不兼容问题)

Python2与Python3兼容

逻辑斯特回归tensorflow实现

如何使用:从 __future__ 使用 django 导入部门

如何使用 __future__ 注释从 self.__annotations__ 获取可调用的类对象?