進(jìn)行對(duì)Python功能全講析
Python在Guido手中誕生了,實(shí)際上,***個(gè)實(shí)現(xiàn)是在Mac機(jī)上,Python語(yǔ)言特別要求的部分,用更合適的語(yǔ)言改寫,比如3D游戲中的圖形渲染模塊,速度要求非常高,就可以用C++重寫,下面著重介紹Python功能。
Python是一種用起來(lái)很方便的語(yǔ)言,很多初學(xué)Java的人都會(huì)被Java的CLASSPATH搞得暈頭轉(zhuǎn)向,花上半天的時(shí)間才搞明白原來(lái)是CLASSPATH搞錯(cuò)了自己的Hello World才沒(méi)法運(yùn)行,用Python就不會(huì)有這種問(wèn)題,只要裝上就能直接用。
Python是一種腳本語(yǔ)言,寫好了就可以直接運(yùn)行,省去了編譯鏈接的麻煩,對(duì)于需要多動(dòng)手實(shí)踐的初學(xué)者而言,也就是少了出錯(cuò)的機(jī)會(huì)。而且Python還有一種交互的方式,如果是一段簡(jiǎn)單的小程序,連編輯器都可以省了,直接敲進(jìn)去就能運(yùn)行。Python是一種清晰的語(yǔ)言。
用縮進(jìn)來(lái)表示程序的嵌套關(guān)系可謂是一種創(chuàng)舉,把過(guò)去軟性的編程風(fēng)格升級(jí)為硬性的語(yǔ)法規(guī)定。再不需要在不同的風(fēng)格間選擇、再不需要為不同的風(fēng)格爭(zhēng)執(zhí)。與Perl不同,Python中沒(méi)有各種隱晦的縮寫,不需要去強(qiáng)記各種奇怪的符號(hào)的含義。Python寫的程序很容易懂,這是不少人的共識(shí)。
Python功能是一種面向?qū)ο蟮恼Z(yǔ)言,但它的面向?qū)ο髤s不象C++那樣強(qiáng)調(diào)概念,而是更注重實(shí)用。不是為了體現(xiàn)對(duì)概念的完整支持而把語(yǔ)言搞得很復(fù)雜。而是用最簡(jiǎn)單的方法讓編程者能夠享受到面向?qū)ο髱?lái)的好處,這正是Python能像Java、C#那樣吸引眾多支持者的原因之一。
Python是一種功能豐富的語(yǔ)言,它擁有一個(gè)強(qiáng)大的基本類庫(kù)和數(shù)量眾多的第三方擴(kuò)展,使得Python程序員無(wú)需去羨慕Java的JDK。Python為程序員提供了豐富的基本功能使得人們寫程序時(shí)用不著一切***層做起。說(shuō)到這里,人們通常會(huì)用一種擔(dān)心:腳本語(yǔ)言通常很慢。腳本語(yǔ)言從運(yùn)行的速度講的確會(huì)慢一些,但Python的速度卻比人們想象得快很多。
雖然Python是一種腳本語(yǔ)言,但實(shí)際上也可以對(duì)它進(jìn)行編譯,就象編譯Java程序一樣將Python程序編譯為一種特殊的ByteCode,在程序運(yùn)行時(shí),執(zhí)行的是ByteCode,省去了對(duì)程序文本的分析解釋,速度自然提升很多。在用Java編程是,人們崇尚一種Pure Java的方式,除了虛擬機(jī)一切東西都用Java編寫,無(wú)論是基本的數(shù)據(jù)結(jié)構(gòu)還是圖形界面。
而Pure Java的SWING,卻成為無(wú)數(shù)Java應(yīng)用開發(fā)者的噩夢(mèng)。Python崇尚的是實(shí)用,它的整體環(huán)境是用C來(lái)編寫的,很多基本的功能和擴(kuò)展的模塊都是用C/C++來(lái)編寫的。當(dāng)執(zhí)行這一部分代碼時(shí),它的速度就是C的速度。用Python編寫的普通桌面程序,其啟動(dòng)運(yùn)行速度與用C寫的程序差別不大。
除了這些,通過(guò)一些第三方軟件包,用Python編寫的源代碼還可以以類似JIT的方式運(yùn)行,而這可以大大提高Python代碼的運(yùn)行速度,針對(duì)不同類型的代碼,會(huì)有2倍至100倍不等的速度提升。
Python是我見到過(guò)的語(yǔ)言中,在易用性和速度上結(jié)合的最***的一個(gè),通過(guò)喪失一點(diǎn)點(diǎn)經(jīng)??梢院雎圆挥?jì)的運(yùn)行速度從而獲得更高的編程效率,這就是我選擇Python的原因。把精力放在要解決的問(wèn)題上選擇一種合適的語(yǔ)言,才能讓你把有限的精力放到最需要解決的問(wèn)題上。不同的語(yǔ)言有不同的作用。
C和匯編適合編寫系統(tǒng)軟件,如果用它們來(lái)編寫企業(yè)應(yīng)用,恐怕沒(méi)幾個(gè)人能得心應(yīng)手。我以前就碰到一個(gè)用匯編寫數(shù)據(jù)庫(kù)程序的哥。雖然最基本的功能完成了,但要增加個(gè)報(bào)表預(yù)覽什么的,他就沒(méi)法應(yīng)付了。聰明的程序員是用合適的工具去完成任務(wù),想找一把***鑰匙是不太可能的。
Python的自動(dòng)的垃圾回收機(jī)制是高級(jí)的編程語(yǔ)言的一種基本特性,用擁有這一功能的語(yǔ)言編程,程序員們通常不用去關(guān)心內(nèi)存泄漏的問(wèn)題,而當(dāng)我們用C/C++寫程序時(shí),這卻是最重要的需要認(rèn)真考慮卻又很容易出錯(cuò)的問(wèn)題之一。
數(shù)據(jù)結(jié)構(gòu)是程序構(gòu)成的重要部分,鏈表、樹、圖這些在用C編程時(shí)需要仔細(xì)表達(dá)的問(wèn)題在Python中簡(jiǎn)單了很多。在Python中,最基本的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組、序列和哈希表,用它們想要表達(dá)各種常見的數(shù)據(jù)結(jié)構(gòu)是非常容易的。沒(méi)了定義指針、分配內(nèi)存的任務(wù),編程變得有趣了。
CORBA是一種高級(jí)的軟件體系結(jié)構(gòu),它是語(yǔ)言無(wú)關(guān)平臺(tái)無(wú)關(guān)的。C++、Java等語(yǔ)言都有CORBA綁定,但與它們相比,Python的CORBA綁定卻容易很多,因?yàn)樵诔绦騿T看來(lái),一個(gè)CORBA的類和Python功能的類用起來(lái)以及實(shí)現(xiàn)起來(lái)并沒(méi)有什么差別。
沒(méi)了復(fù)雜體系結(jié)構(gòu)的困擾,用Python編寫CORBA程序也變得容易了。好鋼要用在刀刃上,要想用有限的時(shí)間完成盡量多的任務(wù),就要把各種無(wú)關(guān)的問(wèn)題拋棄,而Python恰恰提供了這種方法。
【編輯推薦】