編寫高質量程式碼 改善Python程式的91個建議
建議1:理解Pythonic概念
建議2:編寫Pythonic程式碼
建議3:理解Python與C語言的不同之處
建議4:在程式碼中適當新增註釋
建議5:通過適當新增空行使程式碼佈局更為優雅、合理
建議6:編寫函式的4個原則
建議7:將常量集中到一個檔案
建議8:利用assert語句來發現問題
建議9:資料交換值的時候不推薦使用中間變數
建議10:充分利用Lazy evaluation的特性
建議11:理解列舉替代實現的缺陷
建議12:不推薦使用type來進行型別檢查
建議13:儘量轉換為浮點型別後再做除法
建議14:警惕eval()的安全漏洞
建議15:使用enumerate()獲取序列迭代的索引和值
建議16:分清=與is的適用場景
建議17:考慮相容性,儘可能使用Unicode
建議18:構建合理的包層次來管理module
建議19:有節制地使用from…import語句
建議20:優先使用absolute import來匯入模組
建議21:i+=1 不等於 ++i
建議22:使用with自動關閉資源
建議23:使用else子句簡化迴圈(異常處理)
建議24:遵循異常處理的幾點基本原則
建議25:避免finally中可能發生的陷阱
建議26:深人理解None,正確判斷物件是否為空
建議27:連線字串應優先使用join而不是+
建議28:格式化字串時儘量使用.format方式而不是%
建議29:區別對待可變物件和不可變物件
建議30:[]、()和{}: 一致的容器初始化形式
建議31:記住函式傳參既不是傳值也不是傳引用
建議32:警惕預設引數潛在的問題
建議33:慎用變長引數
建議34:深入理解str()和repr()的區別
建議35:分清staticmethod和classmethod的適用場景
建議36:掌握字串的基本用法
建議37:按需選擇sort()或者sorted()
建議38:使用copy模組深拷貝物件
建議39:使用Counter進行計數統計
建議40:深入掌握ConfigParser
建議41:使用argparse處理命令列引數
建議42:使用pandas處理大型CSV檔案
建議43:一般情況使用ElementTree解析XML
建議44:理解模組pickle優劣
建議45:序列化的另一個不錯的選擇—JSON
建議46:使用traceback獲取棧資訊
建議47:使用logging記錄日誌資訊
建議48:使用threading模組編寫多執行緒程式
建議49:使用Queue使多執行緒程式設計更安全
建議50:利用模組實現單例模式
建議51:用mixin模式讓程式更加靈活
建議52:用釋出訂閱模式實現鬆耦合
建議53:用狀態模式美化程式碼
建議54:理解build-in objects
建議55:init() 不是構造方法
建議56:理解名字查詢機制
建議57:為什麼需要self引數
建議58:理解MRO與多繼承
建議59:理解描述符機制
建議60:區別getattr()和getattribute()方法
建議61:使用更為安全的property
建議62:掌握metaclass
建議63:熟悉Python物件協議
建議64:利用操作符過載實現中綴語法
建議65:熟悉Python的迭代器協議
建議66:熟悉Python的生成器
建議67:基於生成器的協程及greenlet
建議68:理解GIL的侷限性
建議69:物件的管理與垃圾回收
建議70:從PyPI安裝包
建議71:使用pip和yolk安裝、管理包
建議72:做paster建立包
建議73:理解單元測試概念
建議74:為包編寫單元測試
建議75:利用測試驅動開發提高程式碼的可測性
建議76:使用Pylint檢查程式碼風格
建議77:進行高效的程式碼審查
建議78:將包釋出到PyPI
建議79:瞭解程式碼優化的基本原則
建議80:藉助效能優化工具
建議81:利用cProfile定位效能瓶頸
建議82:使用memory_profiler和objgrash剖析記憶體使用
建議83:努力降低演算法複雜度
建議84:掌握迴圈優化的基本技巧
建議85:使用生成器提高效率
建議86:使用不同的資料結構優化效能
建議87:充分利用set的優勢
建議88:使用meltiprocessing克服GIL的缺陷
建議89:使用執行緒池提高效率
建議90:使用C/C++模組擴充套件提高效能
建議91:使用Cython編寫擴充套件模組
相關文章
- 改善 Python 程式的 91 個建議Python
- 《編寫高質量程式碼:改善Java程式的151個建議》筆記Java筆記
- 《改善python程式的91個建議》讀書筆記Python筆記
- Github即將破百萬的PDF:編寫高質量程式碼改善JAVA程式的151個建議GithubJava
- 如何編寫高質量的C#程式碼(一)C#
- 《Effective JavaScript 編寫高質量JavaScript程式碼的68個有效方法》JavaScript
- iOS 編寫高質量Objective-C程式碼iOSObjectC程式
- 編寫高質量程式碼的十個祕訣
- iOS編寫高質量Objective-C程式碼(六)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(七)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(八)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(六)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(五)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(一)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(二)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(四)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(四)iOSObjectC程式
- iOS編寫高質量Objective-C程式碼(二)iOSObjectC程式
- iOS 編寫高質量Objective-C程式碼(三)iOSObjectC程式
- 我們應該如何編寫高質量的前端程式碼前端
- Flutter 6 個建議改善你的程式碼結構Flutter
- 🐒編寫高質量程式碼(手撕程式碼)
- 消除程式碼中的壞味道,編寫高質量程式碼
- 我總結了寫出高質量程式碼的12條建議
- iOS 編寫高質量Objective-C程式碼(一)—— 簡介iOSObjectC程式
- 編寫靈活、穩定、高質量的HTML程式碼的規範HTML
- 編寫靈活、穩定、高質量的CSS程式碼的規範CSS
- JavaScript的程式碼編寫注意事項,建議收藏!JavaScript
- 書寫高質量sql的一些建議SQL
- 後端程式設計師必備:書寫高質量SQL的30條建議後端程式設計師SQL
- [轉載]程式設計師必備:書寫高質量SQL的30條建議程式設計師SQL
- 編寫靈活、穩定、高質量的CSS程式碼的規範(推薦收藏)CSS
- 編寫高質量可維護的程式碼:一目瞭然的註釋
- 每日10行程式碼52:編寫高質量python程式碼方法4——用輔助函式來取代複雜的表示式行程Python函式
- 高質量的程式碼 - 函式(1)函式
- 如何提高Java程式碼質量-優雅的寫程式碼Java
- 總結 90 條寫 Python 程式的建議Python
- 給程式設計師的幾點程式設計經驗----《編寫高質量程式碼》程式設計師