【IT168 评论】Python 3正式版已经发布两年半了,由于新版本没有向后兼容2.x版,大家对它的反应也不太一样。为了搞清楚开发人员是如何看待Python 3的,我们采访了Virgil Dupras。
记者:请先介绍一下自己,你在平时的工作中哪些地方用到了Python?
Virgil Dupras:我用PyObjC和PyQT开发了一些开源的桌面应用程序,发布在http://www.hardcoded.net/上。我之前是做Delphi的,但从2005年开始就一直使用Python了。
记者:一年前你就切换到了Python 3上,主要原因是什么?
Virgil Dupras: 我非常喜欢Python,我想让它变得更好。我希望能够更多的参与到核心语言的开发中,但后来发现我还是不够聪明。当然,我还可以提交补丁(我确实提交了一些),可事实上我几乎就没遇到过Python有什么缺陷,因此也没什么补丁好提交的。
所以,我觉得我能够帮助Python的最好方法就是做一个Python 3的早期使用者,这也确实达到我了目的。我没遇到过Python本身的问题,到是很多库有缺陷。我还为py3k做了很多库移植的工作。
记者:当你将代码升级到Python 3的时候,有没有因为兼容性而产生严重的问题?
Virgil Dupras: 升级到Python 3时,你唯一可能遇到的大问题就是字符串和字节之间关系的问题。不过不用担心,只要在升级之前导入所有相关的__future__模块就行了。除法可能也是一个问题,不过你不是已经用“from __future__ import division”解决了么?
字符串和字节的问题非常很棘手,在移植代码之前你得好好想想怎么使用字符串类型。比如,正则表达式只能用于匹配字符串,无法匹配字节。所以,如果之前你把字符串当做字节来用正则表达式解析的话,你就会遇到问题。
除了这种情况,字符串与字节的问题就很好解决了:注意字面值,检查所有的“open”调用,确认到底应该用二进制模式还是文本模式。
记者:有没有在Python 2中你喜欢的,但是Python 3却没有的特性?
Virgil Dupras: 没有,这还是同一种语言,只是更好了。
更多关于跨平台界面开发的信息,请参考Virgil的文章Cross-Toolkit Software。
查看英文原文:Reports from the Field: Python 3 with Hardcoded Software