最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

六星源課堂:Python與其它語言相比,有哪些區(qū)別?

2023-03-13 10:05 作者:六星源課堂  | 我要投稿

Python與其它語言相比,有哪些區(qū)別?接下來,六星源課堂和大家聊聊python與其他語言相比的優(yōu)勢來清除您的疑問。


通常將Python與其他解釋語言例如Java,JavaScript,Perl,Tcl或Smalltalk進(jìn)行比較。與C ++,Common Lisp和Scheme的比較也可能很有啟發(fā)性。在本節(jié)中,我將簡要比較Python與這些語言中的每一種。這些比較僅集中在語言問題上。在實(shí)踐中,編程語言的選擇通常由其他現(xiàn)實(shí)世界的約束所決定,例如成本,可用性,培訓(xùn)和先前的投資,甚至是情感依戀。由于這些方面具有很大的可變性,因此在進(jìn)行比較時要考慮很多因素似乎是浪費(fèi)時間。

Java

通常期望Python程序的運(yùn)行速度比Java程序慢,但是它們花費(fèi)的時間也少得多。Python程序通常比等效Java程序短3-5倍。這種差異可以歸因于Python的內(nèi)置高級數(shù)據(jù)類型及其動態(tài)類型。例如,Python程序員不花時間聲明參數(shù)或變量的類型,而Python強(qiáng)大的多態(tài)列表和字典類型(在語言中直接內(nèi)置了豐富的語法支持)幾乎可以在每個Python程序中找到用途。由于運(yùn)行時輸入,Python的運(yùn)行時間必須比Java的運(yùn)行時間更辛苦。例如,在評估表達(dá)式a + b時,它必須首先檢查對象a和b以找出它們的類型,這在編譯時是未知的。然后,它調(diào)用適當(dāng)?shù)募臃ㄟ\(yùn)算,該運(yùn)算可能是重載的用戶定義方法。另一方面,Java可以執(zhí)行有效的整數(shù)或浮點(diǎn)加法運(yùn)算,但是需要為a和b聲明變量,并且不允許用戶定義類的實(shí)例重載+運(yùn)算符。

由于這些原因,Python更適合作為“膠水”語言,而Java更適合作為低級實(shí)現(xiàn)語言。實(shí)際上,兩者完美地結(jié)合在一起。組件可以用Java開發(fā),并可以組合成Python的應(yīng)用程序。Python也可用于原型化組件,直到可以在Java實(shí)現(xiàn)中“強(qiáng)化”它們的設(shè)計(jì)為止。為了支持這種類型的開發(fā),正在開發(fā)用Java編寫的Python實(shí)現(xiàn),該實(shí)現(xiàn)允許從Java調(diào)用Python代碼,反之亦然。在此實(shí)現(xiàn)中,Python源代碼被轉(zhuǎn)換為Java字節(jié)碼(在運(yùn)行時庫的幫助下支持Python的動態(tài)語義)。

Java腳本

Python的“基于對象”子集大致等效于JavaScript。像JavaScript(與Java不同)一樣,Python支持一種編程樣式,該樣式使用簡單的函數(shù)和變量,而無需參與類定義。但是,對于JavaScript,僅此而已。另一方面,Python通過一種真正的面向?qū)ο蟮木幊田L(fēng)格(其中類和繼承起著重要的作用)來支持編寫更大的程序和更好的代碼重用。

Perl


Python和Perl來自相似的背景(Unix腳本,它們早已不合時宜了),并具有許多相似的功能,但是具有不同的理念。Perl強(qiáng)調(diào)對常見的面向應(yīng)用程序的任務(wù)的支持,例如通過具有內(nèi)置的正則表達(dá)式,文件掃描和報(bào)告生成功能。Python強(qiáng)調(diào)了對通用編程方法的支持,例如數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和面向?qū)ο蟮木幊蹋⒐膭畛绦騿T通過提供優(yōu)雅但又不過分的密碼表示法來編寫可讀(因而可維護(hù))的代碼。因此,Python接近Perl,但很少在其原始應(yīng)用程序領(lǐng)域中勝過它。但是Python的適用性遠(yuǎn)不止Perl的利基。

Tcl

與Python一樣,Tcl既可以用作應(yīng)用程序擴(kuò)展語言,也可以用作獨(dú)立的編程語言。但是,Tcl傳統(tǒng)上將所有數(shù)據(jù)存儲為字符串,但數(shù)據(jù)結(jié)構(gòu)較弱,并且執(zhí)行典型代碼的速度比Python慢得多。Tcl還缺少編寫大型程序所需的功能,例如模塊化名稱空間。因此,盡管使用Tcl的“典型”大型應(yīng)用程序通常包含用C或C ++編寫的特定于該應(yīng)用程序的Tcl擴(kuò)展,但是等效的Python應(yīng)用程序通??梢杂谩凹働ython”編寫。當(dāng)然,純Python開發(fā)者必須編寫和調(diào)試C或C ++組件要快得多。據(jù)說Tcl的一種贖回品質(zhì)是Tk工具包。Python已將Tk的接口用作其標(biāo)準(zhǔn)GUI組件庫。

Tcl 8.0通過為字節(jié)碼編譯器提供有限的數(shù)據(jù)類型支持來解決速度問題,并添加了名稱空間。但是,它仍然是一種繁瑣的編程語言。

C ++

幾乎所有針對Java的說法都適用于C ++,更是如此:Python代碼通常比等效Java代碼短3-5倍,而通常比等效C ++代碼短5-10倍!軼事證據(jù)表明,一個Python程序員可以在兩個月內(nèi)完成,而兩個C ++程序員則可以在一年內(nèi)完成。Python閃耀為一種粘合語言,用于合并用C ++編寫的組件。

以上就是本次分享的全部內(nèi)容,想學(xué)習(xí)更多編程技巧,歡迎持續(xù)關(guān)注六星源課堂!


六星源課堂:Python與其它語言相比,有哪些區(qū)別?的評論 (共 條)

分享到微博請遵守國家法律
荆门市| 河北省| 阜新市| 科技| 佛坪县| 毕节市| 抚远县| 莲花县| 晋中市| 赤水市| 平江县| 彰武县| 南平市| 香港| 鹤庆县| 隆回县| 锦州市| 渭南市| 东安县| 库伦旗| 丰都县| 尚义县| 辰溪县| 托里县| 沭阳县| 泾川县| 昌图县| 周口市| 巴青县| 成安县| 台湾省| 嘉善县| 昂仁县| 广昌县| 武宣县| 镇原县| 隆回县| 建湖县| 伊通| 汝南县| 西贡区|