解讀Python標準語言應用領域
在Python標準語言中,有關缺省變量值的限制非常模糊?;诖?,很多編譯器允許開發(fā)人員將缺省變量值包含在函數(shù)聲明,指向函數(shù)的指針和引用,成員函數(shù)的指針,以及typedef聲明中。
Google開發(fā)者日在北京舉行。作為Python發(fā)明人的Guido Van Rossum,就Python語言做了主題演講。演講現(xiàn)場,來自CSDN的報道稱“引來現(xiàn)場觀眾最熱烈持久的掌聲”。
1. Guido簡介 Python創(chuàng)始人,原居荷蘭,1995年移居美國,2005年加入Google。
2. 為什么叫Python? 說來很有趣,選用Python這個名字,僅僅是因為Guido很喜歡一部叫做《Monty Python飛行馬戲團》的肥皂劇。
3. Python是什么? 是一門可以被應用到很多領域、功能強大、面向?qū)ο?、跨平臺的動態(tài)編程語言。1990年至今,Python經(jīng)過17年的發(fā)展,已經(jīng)成為最流行的編程語言之一。
在Google,Python標準語言更是被廣泛應用,想在Google工作,Python標準語言似乎成了一個基本要求。 在7月份的編程語言受歡迎程度排名中(http://www.tiobe.com/tpci.htm),Python名列第八。 Python何以有這么大的魅力,受到如此的追捧?筆者結合自己的使用經(jīng)驗,認為Python的強大。
主要體現(xiàn)在以下幾個方面:
一、 簡單易學 Python世界非常強調(diào)“簡單”二字,一個代碼風格良好的Python程序,閱讀起來,感覺就像是在閱讀一段英文。Python的這種偽代碼本質(zhì),使得你可以更關注如何解決實際問題,而不是關注語言本身。
Python的語法也相當簡單,并且內(nèi)置了很多高級數(shù)據(jù)結構, Python的簡單易學,很適合作為入門語言。目前,包括麻省理工學院在內(nèi)的國外很多高校,都已選用Python作為教學語言。
二、 代碼量小 實現(xiàn)同樣的功能,Python與Java、C#這樣的“大個頭”比起來,明顯簡約很多。 例如,打印出一個文本文件中的所有內(nèi)容,用Python只需要一句:
- using System; using System.IO; using System.Text; class OpenFile ...
- { public static void Main() ...{ try ...{ using (StreamReader sr = new StreamReader
- ("love.txt",Encoding.Default)) ...
- { String line; while ((line = sr.ReadLine()) != null) ...{ Console.WriteLine(line); } } }
- catch (Exception e) ...
- { Console.WriteLine("The file could not be read: "); Console.WriteLine(e.Message);
- } finally ...{ Console.ReadKey(); } } }
不考慮代碼行數(shù),單就代碼可讀性而言,Python也勝出很多。
三、 豐富的API庫
如果你僅僅認為用Python只能寫寫“Hello World”,那你就大錯特錯了。 Python可以被應用到網(wǎng)絡開發(fā)、GUI開發(fā)、圖形開發(fā)、Web開發(fā)、游戲開發(fā)、手機開發(fā)、數(shù)據(jù)庫開發(fā)等眾多領域。
網(wǎng)絡開發(fā)方面,Python標準語言提供了大量可用的網(wǎng)絡編程模塊,涉及到Socket、EMail、FTP等等;眾所周知的豆瓣網(wǎng)http://www.douban.com/),就是使用了專門用于Python的網(wǎng)絡開發(fā)框架——Twisted;此外,Python還支持Jabber等等。
GUI開發(fā)方面,既有Python標準GUI庫——TKinter,又有很多強大的第三方GUI庫,例如wxPython。 Web開發(fā)方面,Python更顯強大。應用服務器,有zope;CMS系統(tǒng),有plone(基于zope)。
就是做基于plone應用的;此外,還有django——一個可以和RoR相媲美的快速web開發(fā)框架、Pylons等等。 游戲開發(fā)方面,Python也有舉足輕重的地位。很多網(wǎng)絡游戲腳本,例如賬號注冊系統(tǒng)、物品交換系統(tǒng)、場地轉(zhuǎn)換系統(tǒng)和攻擊防御系統(tǒng),都是用Python寫的,與C++相比,Python更加輕便。
四、 安裝容易
上面提到了很多Python的第三方開發(fā)包,如果你是一個Java程序員,或許會對第三方開發(fā)包頗感頭感,一是下載安裝問題,二是開發(fā)包版本問題。但是在Python里,你不需要再擔心這樣的問題。
以筆者做Pylons應用的經(jīng)驗,例如,要安裝Pylons,你只需要:
1. 下載ez_setup.py(http://peak.telecommunity.com/dist/ez_setup.py)
2. 運行 python ez_setup.py Pylons 就這么簡單!又比如,如果你希望使用SQLObject做數(shù)據(jù)持久化工作,如何安裝SQLObject呢?更簡單,只需要運行:easy_install SQLObject。
Python會根據(jù)這個命令,通過網(wǎng)絡下載最合適的開發(fā)包并自動安裝。
五、 多平臺結合
Python也被稱為“膠水語言”,可以方便地調(diào)用其他語言庫。例如前面提到的GUI庫wxPython,它的前身就是用C++實現(xiàn)的wxWidgets??梢赃@么說,其他語言有的,Python都可以有,并且可以很方便地有! 目前,Java和.NET平臺也都實現(xiàn)了各自的Python版本,前者有Jython,后者有IronPython。兩大主流平臺都選擇了Python,從這個側(cè)面,可以看出Python的前景廣闊。
除此之外,與其他腳本語言相比,Python又有什么樣的優(yōu)勢呢?
1. 與Bash相比,語法簡單、學習曲線相對平坦、API庫更加豐富;
2. 與Perl相比,語法簡單、代碼可讀性好、學習曲線相對平坦;
3. 與Ruby相比,語法簡單、代碼可讀性好、文檔多、性能佳(可參見
當然,Python也不是萬能的。 Python主要有以下不足:
1. 與編譯型語言相比,作為解釋型語言,Python的性能比較低。
2. 很多應用還得依賴于其他語言模塊,更適合做快速原型。
3. 多線程支持不夠好。 一些常用的Python IDE
【編輯推薦】