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