開發人員眼中的Python 3

碼頭工人 13年前發布 | 17K 次閱讀 Python

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

 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!