溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python的缺點和劣勢分析

發(fā)布時間:2020-08-27 11:45:40 來源:腳本之家 閱讀:211 作者:laozhang 欄目:開發(fā)技術(shù)

Python的短板

雖然Python擁有很多優(yōu)點,但沒有哪種編程語言能夠勝任所有工 作,因此Python并不能完美地滿足一切需求。如果要確定Python是否適 用于當(dāng)前場景,還需要了解Python不擅長的領(lǐng)域。

Python不是速度最快的語言

Python的執(zhí)行速度可能算得上是一個缺點。Python不是一個完全編 譯的語言,而是先編譯為內(nèi)部字節(jié)碼形式,然后交由Python解釋器來執(zhí) 行。Python為某些操作給出了高效的實現(xiàn),例如,用正則表達式解析字 符串,可以做到與自己編寫的任何C語言代碼一樣快,甚至?xí)臁5?在大多數(shù)情況下,采用Python會比C之類的語言實現(xiàn)更慢。但大家應(yīng)該 保持以下觀點:對絕大多數(shù)應(yīng)用程序而言,現(xiàn)代計算機的計算能力都是 過剩的。開發(fā)速度比程序運行速度更為重要,而Python程序通常編寫速 度會快很多。另外,用C或C ++編寫的模塊對Python進行擴展也比較容 易,程序當(dāng)中的CPU密集型部分可以交由這些模塊來運行。

Python的庫不算最多

雖然Python自帶了一批優(yōu)秀的函數(shù)庫集合,而且還有很多其他庫可 用,但是Python在庫的數(shù)量上并不算領(lǐng)先。像C、Java和Perl之類的編程 語言,可用的庫集合數(shù)量更為龐大。它們在某些領(lǐng)域提供的解決方案是 Python所沒有的,或者Python可能只提供了其中的一種可選方案。不過 這些往往是相當(dāng)專業(yè)的領(lǐng)域,而Python是很容易擴展的,既可以用 Python,也可以用C或其他語言的現(xiàn)有庫。對于幾乎所有的常規(guī)計算問 題,Python庫的支持能力都非常出色。

Python在編譯時不檢查變量類型

與某些其他編程語言不同,Python變量不像容器那樣工作,而更像 是引用整數(shù)、字符串、類實例等各類對象的標(biāo)簽。這表示這些對象本身 雖然是有類型的,但引用它們的變量并沒有與類型進行綁定。變量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)和修復(fù),Python的代碼檢測功能 可以避免類型錯誤的發(fā)生。大多數(shù)Python程序員都認(rèn)為,動態(tài)類型的靈 活性是劃得來的。

Python對移動應(yīng)用的支持不足

在過去的10年中,移動設(shè)備的數(shù)量和種類都出現(xiàn)了爆炸式的增長, 到處都是智能手機、平板電腦、平板手機、Chromebook,運行的操作 系統(tǒng)也是五花八門。Python在移動計算領(lǐng)域并不算強大。雖然有解決方 案可選,但在移動設(shè)備上運行Python并不總是能一帆風(fēng)順,用Python編 寫和發(fā)布商業(yè)應(yīng)用還存在問題。

Python對多處理器的利用不充分

現(xiàn)在多核處理器已經(jīng)普及,在很多情況下也都會帶來性能的明顯提 升。但是,由于具有名為全局解釋器鎖(global interpreter lock,GIL) 的特性,Python的標(biāo)準(zhǔn)版本并沒有按照多內(nèi)核來進行設(shè)計。詳情請查看 David Beazley、Larry Hastings等人關(guān)于GIL的討論視頻,或者訪問 Python wiki里的GIL頁面。盡管用Python可以運行并發(fā)進程,但如果需 要“開箱即用”的并發(fā)能力,Python可能并不合適。

以上就是全部相關(guān)知識點,感謝大家的學(xué)習(xí)和對億速云的支持。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI