當前位置:
首頁 > 知識 > 提高Python程序性能的七個習慣

提高Python程序性能的七個習慣



Python在性能方面不卓越,但是使用一些小技巧,可以提高Python程序的性能,避免不必要的資源浪費。


1. 使用局部變數


儘可能使用局部變數替代全局變數,可以是程序易於維護並且有助於提高性能節約成本。


在模塊命名空間中將變數替換為局部變數,例如ls = os.linesep。一方面,可以提高程序性能,因為局部變數的搜素速度更快;另一方面,用短標識替換長模塊變數,提高可閱讀性。


2. 減少函數調用的數量


當需要確定對象類型時,使用isinstance()方法最好,id()次之,type()最差。



為了避免重複計算,不要把重複操作作為參數放入循環中。


使用模塊X中的函數或者對象Y時,應該用from X import Y,而不是import X; X.Y。因此,當使用Y時,可以減少一次查詢(解析器不必先找到模塊X,然後在模塊X的字典中查找Y)。


3. 使用映射來替換條件搜索


映射(例如dict,等等)的搜索速度比條件語句(例如if,等等)快很多。在Python中沒有select-case語句。


4. 直接迭代序列元素


對於序列(str, list, tuple, 等等),直接迭代序列元素比迭代元素索引要快。


5. 用生成器表達式替換列表解析


列表解析生成整個列表,會對大量數據的迭代產生負面作用。


而生成器表達式不會。生成器表達式不會創建一個列表,相反返回一個生成器,在需要的時候生成具體值(延遲的),這種方式對內存友好。



6. 先編譯後調用


當使用函數eval()和exec()來執行代碼時,最好調用代碼對象(通過compile()函數預先編譯成位元組碼)而不是直接調用str,這樣可以避免重複編譯過程多次和提高程序的性能。


正則表達式模式匹配是類似的。 在執行比較和匹配之前,最好將正則表達式模式編譯為正則表達式對象(通過re.complie()函數)。


7. 模塊編程的習慣


模塊中最高級別的Python語句(無縮進代碼)將在導入模塊時執行(是否真的需要執行)。 因此,您應該嘗試將模塊的所有功能代碼放入函數中(與主程序相關的功能代碼也可以放入main()函數,主程序本身調用main()函數)。


測試代碼可以寫在模塊的main()函數中。 將在主程序中檢測__name__的值。 如果是"__main__"(表示模塊是直接執行的),則調用main()函數進行測試; 如果它是模塊的名稱(表示模塊被調用),則不會執行測試。




英文原文:https://www.tutorialdocs.com/article/7-habits-to-improve-python-programs.html


譯者:javylee



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python程序員 的精彩文章:

Python奪冠:2018年頂級編程語言
Redis 深度歷險:核心原理與應用實踐

TAG:Python程序員 |