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