標籤:

你看好 Python 3 嗎?


就因為unicode,python3肯定能變成主流


在 3.0 時代我已經開始轉向 Python 3 來寫自己用的各種腳本了,因為 Python 2.x 的中文編碼太糾結了。不過目前 Python 3 的庫還是太少,雖然越來越多的庫開始支持了。另外,我寫過 GAE 程序,用的 Python 2.5,用著非常不順手。個人認為接下來一兩年還是 Python 2.6/2.7 用得最廣泛,但終將被 3.x 所取代。我是看好 3.x 的發展的。


不存在看好不看好的問題,3是大勢所趨,不過主流的庫都還不支持3。等Django,MySQLDB都支持了,用3的時代也就到來了。反正2.7是2.x的最後一個版本。


Python3寫代碼很舒服,不用到處codec了,所有的地方都utf-8.就是有些第三方庫不支持麻煩點


謝@胡小櫻 邀,受寵若驚。

Python 嘛我兩個版本都在用,主要用 Python 2。現在大多數項目都是構建在 Python 2 之上的吧,OS X 自帶的 Python 解釋器也是 2。

個人感覺 3 和 2 用起來的主要區別就是 encoding 問題終於解決了,默認 Unicode 了。就憑這一點,處理非英語字元串的時候方便好多好多。之前寫一個通過 adb 向 Android App 發送消息的腳本的時候,Python 2 的中文字元串 encode/decode 出了好多奇奇怪怪的問題(比如說特定字元轉換錯誤,別的字元都正常),至今無解,讓我很無奈。另外一個改變是 print 終於變成函數了,這和其他語言保持了一致。

要從 Python 2 遷移到 3,最大的問題在於很多被廣泛應用的庫改名、合併、改動,比如說 2 時代被廣泛用來做爬蟲的 urllib2。網上搜索一下 Python 爬蟲,99% 的文章都在介紹 urllib2 的用法;但是 Python 3 裡面 urllib2 被合併到 urllib,介面什麼的都不一樣了,我也沒找到任何關於遷移方法的文檔。

Python 開發團隊對於 2 和 3 的態度也是 3 難以推進的理由之一。兩個版本並行開發,這不是明擺著讓版本分裂愈演愈烈嗎?不如早點學微軟把 Python 2 砍掉,長痛不如短痛,開發團隊也免去了同時搞兩個版本的麻煩。


看好python 3,在至少三年之後……老代碼的生命力是很旺盛的!Python 3目前好像並沒有什麼killer application or feature。但我相信未來還是在python 3這邊的。


我看好python4


從3.3開始學, 很開心, 不用忍受 1/2=0 的故事, 也不用搞個 raw_input 前綴了


如果你的工作和文本處理相關得多,那麼還是推薦3啊..

2.X的中文處理讓你欲仙欲死


考古隊挖的一手好墳= =

如果是當時提問的時間點的話(2011-03-23),我對 Python 3 持悲觀態度,因為那時候的Python 3版本是3.2,最最蛋疼的是unicode的u前綴字元串在Python 3是SyntaxError,我知道這些小事可以在 2to3 中自動修復,但是相當多的人,至少包括我和SQLAlchemy的作者,都非常不喜歡2to3,我是認為 2to3 干涉了我對代碼的控制,出了問題還要看是我的問題還是 2to3 自己的問題,單元測試加上 2to3 什麼的麻煩死了,而且在最近的 SQLAlchemy 0.9 的 what"s new 中相當高調的提到了

Targeting Python 2.6 and Up Now, Python 3 without 2to3

What』s New in SQLAlchemy 0.9?

這一點的順序甚至高於更有實質意義的 C Extensions Supported on Python 3,當然你也可以理解為重要的是 2.6+這一點

第二蛋疼的是 Python 2.7 幾乎有所有的 Python 3.0 ~ 3.2 的新功能的 backport ,這樣你讓我有什麼動力去用Python 3 呢?而且當時 N 多庫不相容,尤其是 paramiko ,到現在還不相容,又不像 MySQLdb 有替代-_-||| ,上層的 fabric 也被牽連

不過3.3之後非常不同了,首先最最蛋疼的 u"" 的 SyntaxError 沒有了,然後終於有新特性了有木有,generator delegation 功能讓我流口水( ̄﹁ ̄),當然純粹給generator用有點大才小用,果不其然,3.4 (現在還在rc階段) 的 asyncio 就用的是這種新語法 ( ̄﹁ ̄) 失態了。。。

在 3.3 發布後我才終於有動力修改我的代碼,準備 Python 3 的相容性等待遷移,當然。。。雖然unittest都過了還是要觀望一下-_-|||


大勢所趨

目前就等外圍的各種框架和庫就位了


我使用python3的唯一原因就是中文encode/decode省了


這和看好不看好有什麼關係?

Python3的不向下兼容是Python發展的揚棄的結果。非常決絕有力的決定,給Python注入了更強的生命力。


老實的說看了四年前的答案再看看現在的Python3,我想已經足夠說明問題了


個人感覺 py3 的語法比 py2.x 要舒服。


Django 1.5就要嘗試兼容Python3了,相信這是個轉折點。Python3會原來越好。


不管看好還是不看好,都得追隨Python 3的腳步吧?

看看官網上的說法:

What are the differences?

Short version: Python 2.x is legacy, Python 3.x is the present and future of the language


我覺得由於Python 3不兼容的原因,Python 2.7很有可能會長時間成為Python最最流行、廣泛和長命的版本。。。就像Perl 5至於Perl一樣,,,成為經久不衰的經典。。。。


我應為學Python 學的比較晚,所以直接學了3.41,感覺很舒服,看了跟2x的差別,感覺3x在很多方面都做出了改善,更加優化了寫代碼的環境,作為一個新手也會愛上寫代碼的。

支持3


其實主要看什麼時候linux發行版使用python3 作為默認了


推薦閱讀:

如何用python網路爬蟲求兩個城市間鐵路距離呢?
python中如何理解裝飾器代碼?
哪些庫是 Python2 獨有而 Python3 暫時不支持的?
python進階中,關於買書的問題!?
如何將多維list降到一維,使用環境為python3?

TAG:Python | Python3x |