Python應用語言優點大雜燴
在Python應用語言里面強調最多的就是可讀性,好的代碼會給人的感覺很清爽、美觀;程序以模塊和包的形式分發,版本可控性強;Python編譯成的字節碼具有平臺無關性。
垃圾回收(garbage collection,一下簡稱GC)在當前的版本中使用的是引用計數垃圾收集和可選的循環結構垃圾空間掃描技術。一旦對象變得‘不可達’的時候就會被回收,但是不保證能夠回收包含循環引用計數的內存垃圾。引用計數的算法比較直觀:在每個存儲片中記錄了指向其的指針數目;
在對存儲片進行某些操作時,對引用計數進行更新,分配一個存儲片時引用計數初始化為1,只要存儲片的引用被復制,引用計數加1,存儲片的引用被刪除時,引用計數減1,如果引用計數減為0。
則存儲片會由于不可達而被回收。很明顯引用計數算法不能回收循環的數據結構;設想一個簡單的場景:對象a一個成員指向對象b。同時b也有一個成員指向a,而且代碼中只有引用a的部分,b對象只是輔助a對象而生成的,如果后來a對象被刪除了。
那么a和b作為一個整體都變成內存垃圾了,理論上應該都被內存管理器刪除,但是由于引用計數算法每次只考察一個結點,因此對于循環的數據結構無法回收。所以在編程時應盡量避免循環引用的情況出現。 Python語言的執行效率跟C/C++/Java比起來要稍遜一籌,但是代碼長度大大縮短,并且Python跨平臺、類庫豐富、語法簡單、開發速度快。
因此常用Python應用語言代替C/Java構建大程序,涉及到系統效率的地方可以考慮用C/C++實現。而且Python也可以做glue language(膠水語言),因為Python跟C和Java的溝通能力非常的好。
三大腳本語言的比較:Perl Python Tcl Perl原是專門設計處理文本的,這方面能力***,但是不適合編寫大程序,語法晦澀難懂,與之相比,Python更易閱讀。學習,可維護性更強,代碼安全性更好(Python的異常處理),并且與Java語言更好的集成能力;Tcl的語法簡單。
和其它程序的交互能力強,可以和C語言集成,而且有tk輔助GUI開發,但是Tcl更多是作為scripting language和glue language,不適合寫大程序,與之相比Python的應用范圍要廣闊的多。 #t#
Ruby:Python的正則表達式沒有Ruby的用著方便,Ruby比Python有更完整的面向對象的語法,Ruby的主要功能都是用類的方法調用來實現的。不是函數;另一方面由于Ruby的強大,語言相對Python復雜,Ruby沒有內省性,缺乏國際化支持,缺乏類似Jython的東西。
Python應用語言自身的優秀特性決定了其在實際應用中的廣泛性。快速原型開發;網絡服務器腳本;科學計算;文檔處理;數據庫編程;嵌入開發;GUI開發;游戲開發;移動開發......Python擁有強大Python社區的支持,豐富的類庫,以及C/C++/Java等語言提供可擴展模塊。
【編輯推薦】