標籤:

Python3.3和Python3.2的區別在哪裡?

看到許多Python庫在描述支持的Python版本時,都寫著支持Python3.3,那麼Python3.3和之前的Python3.2/3.1之間有什麼區別呢??


最大的區別是重新引入了unicode literal和bytes literal的標記,所以可以在python3.3里和python2一樣繼續使用u"unicode string"方式寫unicode。

對於軟體開發來說,他們可以在python2中從future import unicode_literal,然後僅在需要時使用bytes literal。如果沒有這個支持,所有需要bytes變數的地方只能從unicode用函數轉換(而且得是不同函數名,因為在python2和3里bytes函數不一樣)

作為例子,可以看一下six里要實現一個b函數將參數轉化成bytes要多少行代碼 six/six.py at master · kelp404/six · GitHub

所以我一直認為python33才是python3真正被開發接受的版本,從這個版本開始開發可以輕易用一個codebase實現兼容27和33,而不依賴於任何2to3轉換。

還有一個差點忘了。PEP 3333,WSGI網關標準的1.0.1版是在2011年final的,python3.3是那之後第一個新版本。理論上說,只有在那個時候之後各種web framework才能實現一個正確的WSGI伺服器。


Python Release Python 3.3.6 Python官網上有寫的,

Major new features of the 3.3 series, compared to 3.2,等等


推薦閱讀:

為什麼在Python定義函數中想使用return語句返回一個list卻沒有任何返回值?
為什麼可以像執行系統命令一樣執行 Python 的包,如 scrapy crawl xxx?
Python3.6中sequence的 +=與 extend()有何區別?後者可以在tuple中使用?
Python 常用的標準庫以及第三方庫有哪些?
python有哪些數據分析和數據展現的模塊可以用?

TAG:Python | Python3x |