1. 程式人生 > >Python 的愛與恨:那些不得不說的優缺點

Python 的愛與恨:那些不得不說的優缺點


顯著的優點

Python 語言擁有諸多的優點,這其中,以下幾個優點特別顯著:


  1. 簡單易學: Python 語言相對於其他程式語言來說,屬於比較容易學習的一門程式語言,它注重的是如何解決問題而不是程式語言的語法和結構。正是因為 Python 語言簡單易學,所以,已經有越來越多的初學者選擇 Python 語言作為程式設計的入門語言。例如,在浙江省 2017 年高中資訊科技改革中,《演算法與程式設計》課程將使用 Python 語言替換原有的 VB 語言。

  2. 語法優美: Python 語言力求程式碼簡潔、優美。在 Python 語言中,採用縮排來標識程式碼塊,通過減少無用的大括號,去除語句末尾的分號等視覺雜訊,使得程式碼的可讀性顯著提高。閱讀一段良好的 Python 程式就感覺像是在讀英語一樣,它使你能夠專注於解決問題,而不用太糾結程式語言本身的語法。

  3. 豐富強大的庫: Python 語言號稱自帶電池(Battery Included),寓意是 Python 語言的類庫非常的全面,包含了解決各種問題的類庫。無論實現什麼功能,都有現成的類庫可以使用。如果一個功能比較特殊,標準庫沒有提供相應的支援,那麼,很大概率也會有相應的開源專案提供了類似的功能。合理使用 Python 的類庫和開源專案,能夠快速的實現功能,滿足業務需求。

  4. 開發效率高: Python 的各個優點是相輔相成的。例如,Python 語言因為有了豐富強大的類庫,所以,Python 的開發效率能夠顯著提高。相對於 C、C++ 和 Java 等編譯語言,Python 開發者的效率提高了數倍。實現相同的功能,Python 程式碼的檔案往往只有 C、C++ 和 Java 程式碼的 1/5~1/3。雖然 Python 語言擁有很多吸引人的特性,但是,各大網際網路公司廣泛使用 Python 語言,很大程度上是因為 Python 語言開發效率高這個特點。開發效率高的語言,能夠更好的滿足網際網路快速迭代的需求,因此,Python 語言在網際網路公司使用非常廣泛。

  5. 應用領域廣泛: Python 語言的另一大優點就是應用領域廣泛,工程師可以使用 Python 做很多的事情。例如,Web 開發、網路程式設計、自動化運維、Linux 系統管理、資料分析、科學計算、人工智慧、機器學習等等。Python 語言介於指令碼語言和系統語言之間,我們根據需要,既可以將它當做一門指令碼語言來編寫指令碼,也可以將它當做一個系統語言來編寫服務。


不可忽視的缺點

毫無疑問,Python 確實有用很多的優點,每一個優點看起來都非常吸引人。但是,Python 並不是沒有缺點的,最主要的缺點有以下幾個:


  1. Python 的執行速度不夠快。當然,這也不是一個很嚴重的問題,一般情況下,我們不會拿 Python 語言與 C/C++ 這樣的語言進行直接比較。在 Python 語言的執行速度上,一方面,網路或磁碟的延遲,會抵消掉部分 Python 本身消耗的時間;另一方面,因為 Python 特別容易和 C 結合起來,因此,我們可以通過分離一部分需要優化速度的應用,將其轉換為編譯好的擴充套件,並在整個系統中使用 Python 指令碼將這部分應用連線起來,以提高程式的整體效率。
  2. Python 的 GIL 鎖限制併發: Python 的另一個大問題是,對多處理器支援不好。如果讀者接觸 Python 時間比較長,那麼,一定聽說過 GIL 這個詞。GIL 是指 Python 全域性直譯器鎖(Global Interpreter Lock),當 Python 的預設直譯器要執行位元組碼時,都需要先申請這個鎖。這意味著,如果試圖通過多執行緒擴充套件應用程式,將總是被這個全域性直譯器鎖限制。當然,我們可以使用多程序的架構來提高程式的併發,也可以選擇不同的 Python 實現來執行我們的程式。
  3. Python 2 與 Python 3 不相容: 如果一個普通的軟體或者庫,不能夠做到後向相容,那麼,它會被使用者無情的拋棄了。在 Python 中,一個槽點是 Python 2 與 Python 3 不相容。因為 Python 沒有向後相容,給所有的 Python 工程師帶來了無數的煩惱。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

相關推薦

no