對Python編寫技巧說明介紹
Python在編程領(lǐng)域的占有率一直處于穩(wěn)步上升之中,根據(jù)***的數(shù)據(jù),Python排名第六,以這樣的發(fā)展趨勢,想必Python一定也不會比C、C++和JAVA這一類的編程語言遜色多少,下面講解下Python編寫技巧問題。
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++寫程序時,這卻是最重要的需要認(rèn)真考慮卻又很容易出錯的問題之一。
數(shù)據(jù)結(jié)構(gòu)是程序構(gòu)成的重要部分,鏈表、樹、圖這些在用C編程時需要仔細(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)平臺無關(guān)的。C++、Java等語言都有CORBA綁定,但與它們相比,Python的CORBA綁定卻容易很多,因為在程序員看來,一個CORBA的類和Python的類用起來以及實現(xiàn)起來并沒有什么差別。
沒了復(fù)雜體系結(jié)構(gòu)的困擾,用Python編寫CORBA程序也變得容易了。好鋼要用在刀刃上,要想用有限的時間完成盡量多的任務(wù),就要把各種無關(guān)的問題拋棄,而Python恰恰提供了這種方法。
跨平臺又易擴展
隨著Linux的不斷成熟,越來越多的人轉(zhuǎn)到Linux平臺上工作,軟件的開發(fā)者自然就希望自己編寫的軟件可以在所有平臺下運行。Java一次編寫處處運行的口號使它成為跨平臺的開發(fā)工具的典范。
但其運行速度卻不被人們看好。實際上,幾乎所有的著名腳本語言都是跨平臺的,Python也不例外。Python不僅支持各種Linux/Unix系統(tǒng),還支持Windows,甚至在Palm上都可以運行Python的程序。
一個程序想要跨平臺工作,不僅僅需要語言本身能夠做到在平臺之間兼容,在圖形化界面的時代,還需要有能跨平臺工作的Widget。Python不僅支持老一些的TK,還支持新的GTK+、QT以及wxWidget,而這些Widgets都可以在多個平臺上工作。通過它們,程序員就可以編寫出漂亮的跨平臺GUI程序。
Python通常是運行在native代碼與腳本代碼之間,程序員可以用C/C++為Python編寫各種各樣的模塊,這不僅可以讓程序員以Python的方式使用系統(tǒng)的各種服務(wù)及用C/C++編寫的優(yōu)秀函數(shù)庫和類庫,還可以大幅度提高Python程序的速度。
用C/C++編寫Python的模塊并不復(fù)雜,而且為了簡化這一工作,人們還制作了不少工具用來協(xié)助這一工作。正是因為如此,現(xiàn)在各種常用的函數(shù)庫和類庫都有Python語言的綁定,用Python可以做到的事情越來越多了。
Python功能強大,但它卻不是***的。如果你要編寫操作系統(tǒng)或驅(qū)動程序,很顯然,Python是做不到的。要寫軟件。沒有哪個工具是***的,現(xiàn)在之所以有那么多的編程語言,就是因為不同的語言適合做不同的事情。因此,選擇適合自己的語言工具是最重要的。
通常認(rèn)為,Python是一種解釋性的語言,但是這種說法是不正確的,實際上,Python在執(zhí)行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節(jié)碼)然后再由Python Virtual Machine來執(zhí)行這些編譯好的byte code。這種機制的基本思想跟Java,.NET是一致的然而,Python Virtual Machine與Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一種更高級的Virtual Machine。
這里的高級并不是通常意義上的高級,不是說Python的Virtual Machine比Java或.NET的功能更強大,而是說和Java 或.NET相比,Python的Virtual Machine距離真實機器的距離更遠(yuǎn)?;蛘呖梢赃@么說,Python編寫的Virtual Machine是一種抽象層次更高的Virtual Machine。
【編輯推薦】