• 如何更好更快的進行Python編寫?

    5
    Python 數據庫 C/C++ 22127 次瀏覽

    許多編程人員對Python編寫經驗為,有的覺得Python是一門獨立的語言,并不是在C++語言的基礎上,可以直接學習Python不必先從別的語言入手。


    它也是由Python編寫而成的Web Server和Web Application應用開發框架,讓Python編寫在國內發展得更快,得到更廣泛的應用,作為程序員的我們是不是也該出一分力呢?

    Twisted是一個純Python的網絡應用框架。由于Twisted社區十分的活躍,你可以從網站上得到充分的文檔,讓你輕松上手;Twisted是開源的,你可以為框架增加任何的特性,只要你有好的Idea;

    由于Twisted是完全由Python編寫的,本身會十分安全和穩定。這都得益于Python本身的設計和容錯機制;還有最最重要的一點,就是你能夠很快的開發出遵循自定義協議的服務器。這是不是很帥呢?大家先看以下代碼:

    1. from twisted.internet.protocol import Protocol, Factory  
    2. from twisted.internet import reactor  
    3.  
    4. class Echo(Protocol):  
    5.     def dataReceived(self, data):  
    6.         self.transport.write(data)  
    7.         if data == 'q':  
    8.             self.transport.loseConnection()  
    9.  
    10. def main():  
    11.     factory = Factory()  
    12.     factory.protocol = Echo 
    13.     reactor.listenTCP(8000,factory)  
    14.     reactor.run()  
    15.  
    16. if __name__ == '__main__':  
    17.     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讓我們的編碼變得更加有效,也更加有趣。

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色