Python的缺點和劣勢分析
Python的短板
雖然Python擁有很多優(yōu)點,但沒有哪種編程語言能夠勝任所有工 作,因此Python并不能完美地滿足一切需求。如果要確定Python是否適 用于當前場景,還需要了解Python不擅長的領(lǐng)域。
Python不是速度最快的語言
Python的執(zhí)行速度可能算得上是一個缺點。Python不是一個完全編 譯的語言,而是先編譯為內(nèi)部字節(jié)碼形式,然后交由Python解釋器來執(zhí) 行。Python為某些操作給出了高效的實現(xiàn),例如,用正則表達式解析字 符串,可以做到與自己編寫的任何C語言代碼一樣快,甚至會更快。但 在大多數(shù)情況下,采用Python會比C之類的語言實現(xiàn)更慢。但大家應(yīng)該 保持以下觀點:對絕大多數(shù)應(yīng)用程序而言,現(xiàn)代計算機的計算能力都是 過剩的。開發(fā)速度比程序運行速度更為重要,而Python程序通常編寫速 度會快很多。另外,用C或C ++編寫的模塊對Python進行擴展也比較容 易,程序當中的CPU密集型部分可以交由這些模塊來運行。
Python的庫不算最多
雖然Python自帶了一批優(yōu)秀的函數(shù)庫集合,而且還有很多其他庫可 用,但是Python在庫的數(shù)量上并不算領(lǐng)先。像C、Java和Perl之類的編程 語言,可用的庫集合數(shù)量更為龐大。它們在某些領(lǐng)域提供的解決方案是 Python所沒有的,或者Python可能只提供了其中的一種可選方案。不過 這些往往是相當專業(yè)的領(lǐng)域,而Python是很容易擴展的,既可以用 Python,也可以用C或其他語言的現(xiàn)有庫。對于幾乎所有的常規(guī)計算問 題,Python庫的支持能力都非常出色。
Python在編譯時不檢查變量類型
與某些其他編程語言不同,Python變量不像容器那樣工作,而更像 是引用整數(shù)、字符串、類實例等各類對象的標簽。這表示這些對象本身 雖然是有類型的,但引用它們的變量并沒有與類型進行綁定。變量x可 能在某一行代碼中引用一個字符串,而在另一行代碼中引用一個整數(shù):
>>> x = "2" >>> x '2' ⇽--- x為字符串"2" >>> x = int(x) >>> x 2 ⇽--- 現(xiàn)在x為整數(shù)值2
Python將類型與對象關(guān)聯(lián),而不是與變量關(guān)聯(lián),這就意味著Python 解釋器無法識別出變量類型不符的錯誤。假設(shè)變量count本來是用來保 存整數(shù)的,但如果將字符串"two"賦給它,在Python里也完全沒問題。 傳統(tǒng)的程序員將這種處理方式算作一個缺點,因為對代碼失去了額外的 免費檢查。但是這種錯誤通常不難發(fā)現(xiàn)和修復,Python的代碼檢測功能 可以避免類型錯誤的發(fā)生。大多數(shù)Python程序員都認為,動態(tài)類型的靈 活性是劃得來的。
Python對移動應(yīng)用的支持不足
在過去的10年中,移動設(shè)備的數(shù)量和種類都出現(xiàn)了爆炸式的增長, 到處都是智能手機、平板電腦、平板手機、Chromebook,運行的操作 系統(tǒng)也是五花八門。Python在移動計算領(lǐng)域并不算強大。雖然有解決方 案可選,但在移動設(shè)備上運行Python并不總是能一帆風順,用Python編 寫和發(fā)布商業(yè)應(yīng)用還存在問題。
Python對多處理器的利用不充分
現(xiàn)在多核處理器已經(jīng)普及,在很多情況下也都會帶來性能的明顯提 升。但是,由于具有名為全局解釋器鎖(global interpreter lock,GIL) 的特性,Python的標準版本并沒有按照多內(nèi)核來進行設(shè)計。詳情請查看 David Beazley、Larry Hastings等人關(guān)于GIL的討論視頻,或者訪問 Python wiki里的GIL頁面。盡管用Python可以運行并發(fā)進程,但如果需 要“開箱即用”的并發(fā)能力,Python可能并不合適。
以上就是全部相關(guān)知識點,感謝大家的學習和對腳本之家的支持。
相關(guān)文章
Python如何使用qrcode生成指定內(nèi)容的二維碼并在GUI界面顯示
現(xiàn)在二維碼很流行,大街小巷大小商品廣告上的二維碼標簽都隨處可見,下面這篇文章主要給大家介紹了關(guān)于如何使用qrcode生成指定內(nèi)容的二維碼并在GUI界面顯示的相關(guān)資料,需要的朋友可以參考下2022-09-09關(guān)于torch.scatter與torch_scatter庫的使用整理
這篇文章主要介紹了關(guān)于torch.scatter與torch_scatter庫的使用整理,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Python3.7 dataclass使用指南小結(jié)
本文將帶你走進python3.7的新特性dataclass,通過本文你將學會dataclass的使用并避免踏入某些陷阱。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02