開發人員眼中的Python 3
Python 3正式版已經發布兩年半了,由于新版本沒有向后兼容2.x版,大家對它的反應也不太一樣。為了搞清楚開發人員是如何看待Python 3的,我們采訪了Virgil Dupras。
InfoQ:請先介紹一下自己,你在平時的工作中哪些地方用到了Python?
Virgil Dupras:我用PyObjC和PyQT開發了一些開源的桌面應用程序,發布在http://www.hardcoded.net/上。我之前是做Delphi的,但從2005年開始就一直使用Python了。
InfoQ:一年前你就切換到了Python 3上,主要原因是什么?
Virgil Dupras: 我非常喜歡Python,我想讓它變得更好。我希望能夠更多的參與到核心語言的開發中,但后來發現我還是不夠聰明。當然,我還可以提交補丁(我確實提交了一些),可事實上我幾乎就沒遇到過Python有什么缺陷,因此也沒什么補丁好提交的。
所以,我覺得我能夠幫助Python的最好方法就是做一個Python 3的早期使用者,這也確實達到我了目的。我沒遇到過Python本身的問題,到是很多庫有缺陷。我還為py3k做了很多庫移植的工作。
InfoQ:當你將代碼升級到Python 3的時候,有沒有因為兼容性而產生嚴重的問題?
Virgil Dupras: 升級到Python 3時,你唯一可能遇到的大問題就是字符串和字節之間關系的問題。不過不用擔心,只要在升級之前導入所有相關的__future__模塊就行了。除法可能也是一個問題,不過你不是已經用“from __future__ import division”解決了么?
字符串和字節的問題非常很棘手,在移植代碼之前你得好好想想怎么使用字符串類型。比如,正則表達式只能用于匹配字符串,無法匹配字節。所以,如果之前你把字符串當做字節來用正則表達式解析的話,你就會遇到問題。
除了這種情況,字符串與字節的問題就很好解決了:注意字面值,檢查所有的“open”調用,確認到底應該用二進制模式還是文本模式。
InfoQ:有沒有在Python 2中你喜歡的,但是Python 3卻沒有的特性?
Virgil Dupras: 沒有,這還是同一種語言,只是更好了。
更多關于跨平臺界面開發的信息,請參考Virgil的文章Cross-Toolkit Software。
查看英文原文:Reports from the Field: Python 3 with Hardcoded Software
來自: InfoQ