首頁  >  文章  >  後端開發  >  python語言和其他語言的區別

python語言和其他語言的區別

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-06-24 14:08:195248瀏覽

Python是一門語法簡潔優美,功能強大無比,應用領域非常廣泛,具有強大完備的第三方庫的一門弱類型的可移植,可擴展,可嵌入的解釋型編程語言。 Python從設計之初就是一門物件導向的語言,它有一個重要的概念,即一切皆物件。

python語言和其他語言的區別

語言特點

簡潔、優雅、省略了各種大括號和分號,還有一些關鍵字,類型說明等等。

語言類型

解釋型語言,運行的時候是一行一行的解釋並執行。所以調試程式碼很方便,開發效率高。

第三方函式庫

python是開源的,而且python的定位時任由其發展,應用領域很多。
如Web、維運、自動化測試、爬蟲、數據分析、人工智慧等。 Python有非常完備的第三方函式庫。

相關推薦:《Python影片教學

#缺點

1. Python的執行速度不夠快。

Python是一門解釋型語言,所以它的速度相較於c/c 會慢一些,但不會影響使用。
因為現在的硬體配置都非常的高,基本上沒什麼影響,除非是一些即時性比較強的程式可能會受到一些影響。但也是有解決辦法的,可以嵌入c\c 程式碼。

2.Python的GIL(Global Interpreter Lock)全域解釋器鎖定。

GIL是什麼

首先明確一點GIL並不是Python的特性,而是解釋器的特性。它是Python的解釋器Cpython用來做多執行緒的控制和調度用的全域鎖。保證同一個時刻只有一個執行緒在運作。 Python還有一些別的解釋器,像是Jpython就沒有GIL鎖。 Cpython現在已經成了python的實現標準,所以我們都說python有GIL限制。

GIL的問題總體上來說是歷史遺留的問題,以前的計算機的程式運作方式是單核多任務的模式,所以為了防止多個任務對同一資源進行同時的操作,競爭資源,才有了全域的解釋器鎖。但是隨著近年來科技的進步,出現了多核心,這樣的話,全域鎖就會限制多執行緒的並行。

解決方法

使用multiprocessing(多進程)取代Thread(多執行緒)
multiprocessing函式庫的出現彌補了Python多執行緒並發限制的不足,每個進程都有自己獨立的GIL,因此也不會出現進程之間的GIL的爭奪。

GIL只是Cpython解釋器的產物,當然可以用其他的解釋器來替代,但是由於其他的解釋器,對C支援的不是很好,多以一直也不是很受歡迎。

Python社群也在對GIL對於多執行緒的支援的一些改進。例如增加執行緒的優先權(高優先權的執行緒可以迫使其他執行緒釋放所有的GIl鎖)。

如果對平行運算效能較高的程式可以考慮把核心部分寫成C模組,或是直接用其他語言取代。

Python和Java比較

Python比Java簡單。 Python是函數為一等公民的語言,而Java是類別為一等公民的語言。 Python是弱型別語言,而Java是強型別語言。

Python和C相比

對於使用:
Python的類別庫齊全且使用簡潔,很少程式碼實現的功能用C可能要很複雜。
對於速度:
Python的運行速度相較於C,絕對是很慢了。 Python和CPython解釋器都是C語言寫的。

編譯性和解釋型語言

解釋型:就是邊解釋邊執行。
編譯性:編譯後再執行。

以上是python語言和其他語言的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn