如何更好更快的進行Python編寫?
許多編程人員對Python編寫經驗為,有的覺得Python是一門獨立的語言,并不是在C++語言的基礎上,可以直接學習Python不必先從別的語言入手。
它也是由Python編寫而成的Web Server和Web Application應用開發框架,讓Python編寫在國內發展得更快,得到更廣泛的應用,作為程序員的我們是不是也該出一分力呢?
Twisted是一個純Python的網絡應用框架。由于Twisted社區十分的活躍,你可以從網站上得到充分的文檔,讓你輕松上手;Twisted是開源的,你可以為框架增加任何的特性,只要你有好的Idea;
由于Twisted是完全由Python編寫的,本身會十分安全和穩定。這都得益于Python本身的設計和容錯機制;還有最最重要的一點,就是你能夠很快的開發出遵循自定義協議的服務器。這是不是很帥呢?大家先看以下代碼:
- from twisted.internet.protocol import Protocol, Factory
- from twisted.internet import reactor
- class Echo(Protocol):
- def dataReceived(self, data):
- self.transport.write(data)
- if data == 'q':
- self.transport.loseConnection()
- def main():
- factory = Factory()
- factory.protocol = Echo
- reactor.listenTCP(8000,factory)
- reactor.run()
- if __name__ == '__main__':
- main()
這里定義了一個很簡單的Echo協議:就是將client端的輸入再次回顯而已。運行該腳本,然后利用telnet程序去連接本機的8000端口,連接上之后,你可以嘗試著敲入幾個字符,你會發現屏幕上會將你敲入的字符顯示了兩遍。
不需要驚訝,因為一遍是由于鍵盤輸入產生的屏幕輸出,而另一遍則是由服務器將接受到的數據發送回client而產生的輸出。如果你按下'q',就能夠斷開與服務器的連接。雖然以上實現的功能很簡單,但是我們確實建立了一個屬于自己的服務器,一個按照自己定義的協議提供服務的server。開發的速度是不是很快呢?
正如Twisted網站上說的Develop servers at lightning speed(閃電般的速度)。只要將具體的協議做進一步的擴展,就能建立起功能強大的服務器了。在這里所提到的Twisted的功能僅僅是這座寶藏的冰山一角,在這里就不進一步去闡述了。有興趣的朋友可以從Twisted的網站得到更多的信息。
除了上篇和以上講述到的兩個強大的基于Python類庫之外,還有IronPython,一個在.NET上的Python實現,不僅可以把Python程序編譯成IL并跟CLR良好的協作,其執行速度還要比Python的C語言實現要快許多;
還有Zope也不得不提一下。它也是由Python編寫而成的Web Server和Web Application應用開發框架,其中用到了不少新鮮的東西哦,譬如面向對象數據庫以及CMF(Content Management Framework)等。還有Plone,一個十分出色的CMS(Content Management System),想看看以它進行內容管理的網站嗎?看看這里很cool的網站列表吧。你會發現夏威夷政府,還會發現太空總署。
除了Plone,還有PyGame,還有高居SourceForge下載排行榜前列的BitTorrent,還有……趕緊去瞧瞧你身邊的寶藏吧。如果你仍然對于Python持懷疑的態度,最后再聽聽牛人Eric Raymond的意見吧:Why Python? 讓Python編寫在國內發展得更快,得到更廣泛的應用,作為程序員的我們是不是也該出一分力呢?畢竟Python讓我們的編碼變得更加有效,也更加有趣。