[翻译]移植代码到Python3(三)

来源:互联网 发布:c语言模块化头文件 编辑:程序博客网 时间:2024/06/14 05:59

移植代码到Python3

-介绍
-迁移策略
-运行时警告
-向前特性
-2to3源码转换器

介绍
-不止一种方法来完成
-移植C扩展是另一个怪物

迁移策略
1.改进你的测试套件
2.移植代码到Python2.6
3.开放Python3的警告
4.修复所有的警告
5.改造你的代码
6.运行2to3

代码改造
-缩小语义差距
-减少2to3的工作量
-例子:
    -使用dict.iterkeys(), xrange()等
    -避免str和unicode的隐式转换
    -使用__getitem__替换__getslice__

运行时警告
python2.6 -3 scriptname.py
-警告Python3中移除了的特性
-警告2to3不能自动处理的改变

向前特性
Python3的许多特性在Python2.6中有效
-新的I/O库
-Unicode和bytes

-未来的内嵌函数

-捕获和抛出异常的新语法
-新ast模块,高级字符串格式,丰富的比较等

2to3源码转换器
-转换文件或目录
-产生一个相异格式的补丁
2to3 project/ > python3.patch
-也可以修复doctests
2to3 -d tests.py
-修复器可以单独运行

局限性
-只能处理语法转换——也就是说没有类型推断
-不能修复下面这些:





将近的改变
-%型的格式可能将弃用
-性能改善
-新importlib模块

总结
-Python3有许多新特性
-有许多工具辅助转换
-发送bug报告到http://bugs.python.org/
-订阅pythonporting邮件列表以获取更多帮助

 

 

(完)

原创粉丝点击