python 2-3 的兼容代码的编写
目前需要编写 python2-3 兼容的代码,并且对之前的 python2 的代码做 python3 的兼容(说顺便把这个做了, 几千行的代码说顺便就顺便)),需要注意些细节。
python 2-3 的不兼容
python3 与 python2 的不兼容的地方主要有以下几点
print由关键字变为函数raw_input在 Python3 中变为inputurllib重新组织xrange在 Python3 中重命名为rangeraise语法改变except语法改变- python3 支持
exception chain /python3 变为浮点计算- 类型的重命名
utf8的支持dict的 iterate 方法重命名
注意事项
使用 six 模块屏蔽 Python2 和 Python3 的差异部分。six 模块的详细文档见官网
使用 six.PY2, six.PY3 检查当前是运行在 Python2 还是 Python3 环境下。
常用措施
six.print_代替printsix.move代替python3中重命名或重新组织的模块, 如xrangesix.iteritems代替dict等容器的迭代requests代替urllib
目前较为常用的就这些,待续