介绍Python中的__future__模块
2017-10-26 19:24
218 查看
这篇文章主要介绍了介绍Python中的__future__模块,__future__模块使得在Python2.x的版本下能够兼容更多的Python3.x的特性,需要的朋友可以参考下
Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动。有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了。
从Python 2.7到Python 3.x就有不兼容的一些改动,比如2.x里的字符串用'xxx'表示str,Unicode字符串用u'xxx'表示unicode,而在3.x中,所有字符串都被视为unicode,因此,写u'xxx'和'xxx'是完全一致的,而在2.x中以'xxx'表示的str就必须写成b'xxx',以此表示“二进制字符串”。
要直接把代码升级到3.x是比较冒进的,因为有大量的改动需要测试。相反,可以在2.7版本中先在一部分代码中测试一些3.x的特性,如果没有问题,再移植到3.x不迟。
Python提供了__future__模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。举例说明如下:
为了适应Python 3.x的新的字符串的表示方法,在2.7版本的代码中,可以通过unicode_literals来使用Python 3.x的新的语法:
?
注意到上面的代码仍然在Python 2.7下运行,但结果显示去掉前缀u的'a string'仍是一个unicode,而加上前缀b的b'a string'才变成了str:
?
类似的情况还有除法运算。在Python 2.x中,对于除法有两种情况,如果是整数相除,结果仍是整数,余数会被扔掉,这种除法叫“地板除”:
?
要做精确除法,必须把其中一个数变成浮点数:
?
而在Python 3.x中,所有的除法都是精确除法,地板除用//表示:
?
如果你想在Python 2.7的代码中直接使用Python 3.x的除法,可以通过__future__模块的division实现:
?
结果如下:
?
小结
由于Python是由社区推动的开源并且免费的开发语言,不受商业公司控制,因此,Python的改进往往比较激进,不兼容的情况时有发生。Python为了确保你能顺利过渡到新版本,特别提供了__future__模块,让你在旧的版本中试验新版本的一些特性。
Python的每个新版本都会增加一些新的功能,或者对原来的功能作一些改动。有些改动是不兼容旧版本的,也就是在当前版本运行正常的代码,到下一个版本运行就可能不正常了。
从Python 2.7到Python 3.x就有不兼容的一些改动,比如2.x里的字符串用'xxx'表示str,Unicode字符串用u'xxx'表示unicode,而在3.x中,所有字符串都被视为unicode,因此,写u'xxx'和'xxx'是完全一致的,而在2.x中以'xxx'表示的str就必须写成b'xxx',以此表示“二进制字符串”。
要直接把代码升级到3.x是比较冒进的,因为有大量的改动需要测试。相反,可以在2.7版本中先在一部分代码中测试一些3.x的特性,如果没有问题,再移植到3.x不迟。
Python提供了__future__模块,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。举例说明如下:
为了适应Python 3.x的新的字符串的表示方法,在2.7版本的代码中,可以通过unicode_literals来使用Python 3.x的新的语法:
?
?
?
?
?
?
?
由于Python是由社区推动的开源并且免费的开发语言,不受商业公司控制,因此,Python的改进往往比较激进,不兼容的情况时有发生。Python为了确保你能顺利过渡到新版本,特别提供了__future__模块,让你在旧的版本中试验新版本的一些特性。
相关文章推荐
- 介绍Python中的__future__模块
- Python标准库(非常经典的各种模块介绍)
- Python常用模块种类的系统介绍及与操作系统相关的调用和操作
- Python3常用网络编程模块介绍
- Python中fileinput模块介绍
- Python图像处理库:PIL中Image,ImageDraw等基本模块介绍
- Python中fileinput模块介绍
- python模块之__future__模块
- Python基础之getpass模块详细介绍
- 关于python 中的__future__模块(from __future__ import ***)
- 022--python 模块介绍和time模块
- Python图像处理库PIL的ImageOps模块介绍 -----> 一些基本的图像操作
- Python中的模块介绍和使用
- 这篇文章主要介绍了Python os模块介绍,需要的朋友可以参考下
- python 模块的概念介绍
- Python模块之 __future__
- Python时间calender模块介绍
- python模块介绍- SocketServer 网络服务框架
- [转] Python 常用第三方模块 及PIL介绍
- Python模块搜索概念介绍及模块安装方法介绍