為什么很多人喜歡學習Python有哪些優(yōu)點呢?
說起目前最火的編程語言,Python肯定名列三甲,而且近年來頗有超越長期霸占排行榜榜首Java的趨勢。許多轉行IT行業(yè)的人,也都把Python作為入門語言,其實如果讓小課選的話,我也會選擇Python。那么,Python究竟有什么魅力呢?它的優(yōu)缺點都有哪些呢?
優(yōu)點
簡單易學
作為一種面向對象、解釋型的腳本語言,Python同時也是一種功能強大而完善的通用型語言。相比于其他編程語言(比如 Java),Python 代碼非常簡單,上手非常容易。
開源
Python 是 FLOSS(自由/開源源碼軟件)之一,簡單地理解就是,用戶使用 Python 進行開發(fā)和發(fā)布自己編寫的程序,不需要支付任何費用,也不用擔心版權問題,即使作為商業(yè)用途,Python 也是免費的。
開源正在成為軟件行業(yè)的一種發(fā)展趨勢,現(xiàn)在有很多商業(yè)軟件公司都開始將自己的產品變成開源的(例如 Java)。也許,Python 的開源正是它如此優(yōu)秀的原因之一,因為會有這么一群人,他們希望看到一個更加優(yōu)秀的 Python,從而為了這個目標,不斷地對 Python 進行創(chuàng)造,不斷地改進。
解釋型語言
一個用編譯型語言(如 C 或 C++)寫的程序,可以從源文件轉換到一個計算機使用的語言。這個過程主要通過編譯器完成。當運行程序的時候,我們可以把程序從硬盤復制到內存中并且運行。
而 Python 語言寫的程序,則不需要編譯成二進制代碼,可以直接從源代碼運行程序。在計算機內部,由 Python 解釋器把源代碼轉換成字節(jié)碼的中間形式,然后再把它翻譯成計算機使用的機器語言并運行。
事實上,由于不再擔心如何編譯程序,使得使用 Python 變得更加簡單,我們只需要將 Python 程序復制到另外一臺計算機上,它就可以工作了。因此,Python 程序更加易于移植。
可移植性
由于 Python 是開源的,它已經被移植到許多平臺上。如果能夠避免使用依賴系統(tǒng)的特性,那就意味著,所有 Python 程序都無需修改就可以在好多平臺上運行,包括 Linux 、Windows、FreeBSD、Solaris 等等,甚至還有 PocketPC、Symbian 以及 Google 基于 Linux 開發(fā)的 Android 平臺。
解釋型語言幾乎天生就是跨平臺的。Python 作為一門解釋型的語言,它天生具有跨平臺的特征,只要為平臺提供了相應的 Python 解釋器,Python 就可以在該平臺上運行。
豐富強大的庫
Python 語言號稱自帶電池(Battery Included),寓意是 Python 語言的類庫非常的全面,包含了解決各種問題的類庫。無論實現(xiàn)什么功能,都有現(xiàn)成的類庫可以使用。如果一個功能比較特殊,標準庫沒有提供相應的支持,那么,很大概率也會有相應的開源項目提供了類似的功能。合理使用 Python 的類庫和開源項目,能夠快速的實現(xiàn)功能,滿足業(yè)務需求。
可擴展性
Python 的可擴展性體現(xiàn)為它的模塊,Python 具有腳本語言中最豐富和強大的類庫,這些類庫覆蓋了文件 I/O、GUI、網絡編程、數(shù)據(jù)庫訪問、文本操作等絕大部分應用場景。
Python 可擴展性一個最好的體現(xiàn)是,當我們需要一段關鍵代碼運行的更快時,可以將其用 C 或 C++ 語言編寫,然后在 Python 程序中使用它們即可。
雖然Python有很多優(yōu)點,但是也并不是沒有缺點,最主要的缺點有以下幾個:
Python 的執(zhí)行速度不夠快。相比于比 Java、C、C++ 等程序,Python 的運行效率要稍微慢些。不過,這也不是一個很嚴重的問題,一方面,網絡或磁盤的延遲,會抵消掉部分 Python 本身消耗的時間;另一方面,因為 Python 特別容易和 C 結合起來,因此,我們可以通過分離一部分需要優(yōu)化速度的應用,將其轉換為編譯好的擴展,并在整個系統(tǒng)中使用 Python 腳本將這部分應用連接起來,以提高程序的整體效率。
Python 的 GIL 鎖限制并發(fā):Python 的另一個大問題是,對多處理器支持不好。GIL 是指 Python 全局解釋器鎖(Global Interpreter Lock),當 Python 的默認解釋器要執(zhí)行字節(jié)碼時,都需要先申請這個鎖。這意味著,如果試圖通過多線程擴展應用程序,將總是被這個全局解釋器鎖限制。
不過,我們也可以使用多進程的架構來提高程序的并發(fā),也可以選擇不同的 Python 實現(xiàn)來運行我們的程序。
源代碼加密困難:不像編譯型語言的源程序會被編譯成目標程序,Python 直接運行源程序,因此對源代碼加密比較困難。
總而言之,作為一種編程語言,Python在兼顧質量和效率方面有很好的平衡,尤其對新手而言,Python是一種十分友好的語言。