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

移植代码到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邮件列表以获取更多帮助

 

 

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值