区别
- Python2.x与Python3.x版本区别:http://www.runoob.com/python/python-2x-3x.html
- 示例解读Python2和Python3之间的主要差异:https://www.oschina.net/news/99235/difference-between-python2-and-python-3
- 13个python3才能用的特性:https://mp.weixin.qq.com/s/eYeY2lcaPCsIIFOyZ6v-OQ
特别注意:
- 在python2.7中range的返回值是一个列表,而在python3.x中返回的是一个range对象。
- map()、filter()、 dict.items()在python2.7返回列表,而在3.x中返回迭代器,但只能遍历一
转换(迁移)与兼容
- 愉快地迁移到Python3:https://mp.weixin.qq.com/s/bF-QcmaRqq5m-DYyn3W03w
- 让你的python程序同时兼容python2和python3:http://python.jobbole.com/83987/
转换(迁移)工具 - 2to3
Automated Python 2 to 3 code translation.
Python2和Python3自带实用转换脚本2to3(Utility Script),可将Python2程序源文件作为输入,然后自动将其转换到Python3的形式。
官网信息:
- Python2:https://docs.python.org/2/library/2to3.html
- Python3:https://docs.python.org/3/library/2to3.html
兼容工具 - Six
Six is a Python 2 and 3 compatibility library.
专门用来兼容Python2和Python3的库,使用six写的代码可以不用修改就运行在Python2或Python3上。
简单来说,Six统一了Python2和Python3的名字等内容,封装了Python2和Python3之间的差异。
Six只有一个six.py文件,可以方便地拷贝到项目中,也可以使用pip安装。
官网信息:
- PyPI:https://pypi.org/project/six/
- HomePage:https://github.com/benjaminp/six
- Documentation:https://six.readthedocs.io/
参考信息:
- 介绍Python2和Python3的兼容库six:https://www.kawabangga.com/posts/2360
- python之six用法:https://www.jianshu.com/p/62a6e3f2d1ca
- Python代码版本兼容技巧以及自我实现six:https://mp.weixin.qq.com/s/UuZJa7ENvgZgis5GWD-hOA