對Python編寫技巧說明介紹
Python在編程領(lǐng)域的占有率一直處于穩(wěn)步上升之中,根據(jù)***的數(shù)據(jù),Python排名第六,以這樣的發(fā)展趨勢,想必Python一定也不會(huì)比C、C++和JAVA這一類的編程語言遜色多少,下面講解下Python編寫技巧問題。
Python是我見到過的語言中,在易用性和速度上結(jié)合的最***的一個(gè),通過喪失一點(diǎn)點(diǎn)經(jīng)常可以忽略不計(jì)的運(yùn)行速度從而獲得更高的編程效率,這就是我選擇Python的原因。把精力放在要解決的問題上選擇一種合適的語言,才能讓你把有限的精力放到最需要解決的問題上。不同的語言有不同的作用,C和匯編適合編寫系統(tǒng)軟件。
如果用它們來編寫企業(yè)應(yīng)用,恐怕沒幾個(gè)人能得心應(yīng)手。我以前就碰到一個(gè)用匯編寫數(shù)據(jù)庫程序的哥,雖然最基本的功能完成了。但要增加個(gè)報(bào)表預(yù)覽什么的,他就沒法應(yīng)付了。聰明的程序員是用合適的工具去完成任務(wù),想找一把***鑰匙是不太可能的。
Python的自動(dòng)的垃圾回收機(jī)制是高級的編程語言的一種基本特性,用擁有這一功能的語言編程,程序員們通常不用去關(guān)心內(nèi)存泄漏的問題,而當(dāng)我們用C/C++寫程序時(shí),這卻是最重要的需要認(rèn)真考慮卻又很容易出錯(cuò)的問題之一。
數(shù)據(jù)結(jié)構(gòu)是程序構(gòu)成的重要部分,鏈表、樹、圖這些在用C編程時(shí)需要仔細(xì)表達(dá)的問題在Python中簡單了很多。在Python中。最基本的數(shù)據(jù)結(jié)構(gòu)就是數(shù)組、序列和哈希表,用它們想要表達(dá)各種常見的數(shù)據(jù)結(jié)構(gòu)是非常容易的。沒了定義指針、分配內(nèi)存的任務(wù),編程變得有趣了。
CORBA是一種高級的軟件體系結(jié)構(gòu),它是語言無關(guān)平臺(tái)無關(guān)的。C++、Java等語言都有CORBA綁定,但與它們相比,Python的CORBA綁定卻容易很多,因?yàn)樵诔绦騿T看來,一個(gè)CORBA的類和Python的類用起來以及實(shí)現(xiàn)起來并沒有什么差別。
沒了復(fù)雜體系結(jié)構(gòu)的困擾,用Python編寫CORBA程序也變得容易了。好鋼要用在刀刃上,要想用有限的時(shí)間完成盡量多的任務(wù),就要把各種無關(guān)的問題拋棄,而Python恰恰提供了這種方法。
跨平臺(tái)又易擴(kuò)展
隨著Linux的不斷成熟,越來越多的人轉(zhuǎn)到Linux平臺(tái)上工作,軟件的開發(fā)者自然就希望自己編寫的軟件可以在所有平臺(tái)下運(yùn)行。Java一次編寫處處運(yùn)行的口號使它成為跨平臺(tái)的開發(fā)工具的典范。
但其運(yùn)行速度卻不被人們看好。實(shí)際上,幾乎所有的著名腳本語言都是跨平臺(tái)的,Python也不例外。Python不僅支持各種Linux/Unix系統(tǒng),還支持Windows,甚至在Palm上都可以運(yùn)行Python的程序。
一個(gè)程序想要跨平臺(tái)工作,不僅僅需要語言本身能夠做到在平臺(tái)之間兼容,在圖形化界面的時(shí)代,還需要有能跨平臺(tái)工作的Widget。Python不僅支持老一些的TK,還支持新的GTK+、QT以及wxWidget,而這些Widgets都可以在多個(gè)平臺(tái)上工作。通過它們,程序員就可以編寫出漂亮的跨平臺(tái)GUI程序。
Python通常是運(yùn)行在native代碼與腳本代碼之間,程序員可以用C/C++為Python編寫各種各樣的模塊,這不僅可以讓程序員以Python的方式使用系統(tǒng)的各種服務(wù)及用C/C++編寫的優(yōu)秀函數(shù)庫和類庫,還可以大幅度提高Python程序的速度。
用C/C++編寫Python的模塊并不復(fù)雜,而且為了簡化這一工作,人們還制作了不少工具用來協(xié)助這一工作。正是因?yàn)槿绱耍F(xiàn)在各種常用的函數(shù)庫和類庫都有Python語言的綁定,用Python可以做到的事情越來越多了。
Python功能強(qiáng)大,但它卻不是***的。如果你要編寫操作系統(tǒng)或驅(qū)動(dòng)程序,很顯然,Python是做不到的。要寫軟件。沒有哪個(gè)工具是***的,現(xiàn)在之所以有那么多的編程語言,就是因?yàn)椴煌恼Z言適合做不同的事情。因此,選擇適合自己的語言工具是最重要的。
通常認(rèn)為,Python是一種解釋性的語言,但是這種說法是不正確的,實(shí)際上,Python在執(zhí)行時(shí),首先會(huì)將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼)然后再由Python Virtual Machine來執(zhí)行這些編譯好的byte code。這種機(jī)制的基本思想跟Java,.NET是一致的然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。
這里的高級并不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強(qiáng)大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實(shí)機(jī)器的距離更遠(yuǎn)。或者可以這么說,Python編寫的Virtual Machine是一種抽象層次更高的Virtual Machine。
【編輯推薦】