當前位置:
首頁 > 知識 > Python3 的這幾個特性

Python3 的這幾個特性

距離官方放棄Python2的時間越來越近,很多項目也逐漸的開始放棄對Python2的支持,比如Django,IPython這些框架就走在了最前列,Python2完成了它的使命,在人工智慧的新時代,Python2帶來的問題不斷地困擾開發者,比如字元編碼問題、性能問題、代碼維護問題等等。

而 Python3 才是未來真正適合移動互聯網、人工智慧的一門語言。發現很多很多小夥伴依然停留在Python2的腳步,一部分原因來自於老舊系統帶來的遷移成本,還有另一部分原因則是缺乏相關的資料。專門介紹Python3的文章還比較少,所以小編想根據自己的工作經驗盤點Python3給我帶來的好處。

1. 明確區分字元和位元組類型

沒遇到過Python編碼問題都不能稱之為真正的Python程序員,但凡是在中文環境下使用Python或多或少都遇到過字元編碼的問題,最常見的錯誤就是UnicodeEncodeError,UnicodeDecodeError 這樣的錯誤。出現這種錯誤的根本原因在於Python2積攢下來的歷史包袱,默認使用ASCII作為編碼格式,字元串和位元組類型界限模糊,字元串又分為str和unicode類型,有時一個字元串既是str類型,又可以是byte類型,混亂至極。所以在Python3徹底解決的這種情況,首先Python3使用utf-8作為默認編碼,這樣就兼容了所有字元,無論是中文、日文、韓文還是火星文都可以表示了,此外,str和byte兩種類型做了明確的區分,因此,使用Python3可解決99%的編碼錯誤問題。

2. 取消老式類

Python2 為了兼容之前的版本,Python中的類還分為新式類和舊式類,舊式類由於早期的設計缺陷導致功能不完善,於是推出了新式類,這樣一來,在python2中就一直存在新舊兩種形式的類,而在Python3就徹底把舊式類拋棄掉了。這也很多程度上減少了開發者每次創建一個對象還是顯式的指定object作為父類的情景。

3. 類型聲明

我們都知道Python是一門動態語言,動態語言的一大特點就是定義變數的時候不需要指定數據類型,變數本省是沒有類型整個說法的,真正的類型是由對象才有,正因為如此,這個特性給開發者帶來靈活和便利性,與此同時,有利也有弊,任何變數在運行期你是無法確定變數的類型的,程序不得不在運行時才能確定類型,這樣就會造成一個問題,如果你是API的調用者,當API的提供方沒有提供詳細的文檔說明或者代碼注釋的時候,你根本就無法利用他們給你提供的服務,而且,項目規模變大之後,沒有類型聲明的代碼對維護也是一大挑戰,因為,Python3考慮到這種情況,新增了類型聲明,在方法定義或者數據的返回值,都可以指定一個數據類型,明確要求調用者必須使用指定的類型才能調用該方法。

4. 非同步

Python雖然提高的開發的效率,但是帶來的代價就是程序性能上的損耗,因為它是一種解釋型語言,速度上自然比不上靜態語言,與此同時,Python天生的GIL語言,並不能充分利用多核CPU,使得程序可以並行執行。所以,多線程面對計算密集型場景成了雞肋。為了解決這一問題,Python引入了 ascync ,開始原生支持非同步操作,這使得在單線程情況下,也能充分利用系統資源,提高程序性能。

Python3 的這幾個特性

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

數據抽取清洗轉換載入工具ETL
Eclipse編輯Spring配置文件xml時自動提示類class包名

TAG:程序員小新人學習 |