Python的缺點和劣勢分析
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í)?。?在大多數(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ù)、字符串、類實例等各類對象的標簽。這表示這些對象本身 雖然是有類型的,但引用它們的變量并沒有與類型進行綁定。變量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程序員都認為,動態(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的標準版本并沒有按照多內(nèi)核來進行設(shè)計。詳情請查看 David Beazley、Larry Hastings等人關(guān)于GIL的討論視頻,或者訪問 Python wiki里的GIL頁面。盡管用Python可以運行并發(fā)進程,但如果需 要“開箱即用”的并發(fā)能力,Python可能并不合適。
以上就是全部相關(guān)知識點,感謝大家的學(xué)習(xí)和對腳本之家的支持。
相關(guān)文章
python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法
本篇文章主要介紹了python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
python筆記_將循環(huán)內(nèi)容在一行輸出的方法
今天小編就為大家分享一篇python筆記_將循環(huán)內(nèi)容在一行輸出的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08
python中startswith()和endswith()的用法詳解
Python startswith() 方法用于檢查字符串是否是以指定子字符串開頭,endswith()方法主要是用于判斷字符串是否以指定字符或子字符串結(jié)尾,常用于判斷文件類型,對python startswith()和endswith()用法相關(guān)知識感興趣的朋友一起看看吧2021-10-10
Python使用pyecharts繪制世界地圖,省級地圖,城市地圖實例詳解
這篇文章主要介紹了如何使用Python中的pyecharts庫繪制世界地圖、中國地圖、省級地圖、市級地圖,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起動手試一試2022-02-02
Python中Flask-RESTful編寫API接口(小白入門)
這篇文章主要介紹了Python中Flask-RESTful編寫API接口(小白入門),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

