3個例子教你重構 Python 程式碼
1. 合併巢狀的 if 條件
太多的巢狀會使程式碼難以理解,這在 Python 中尤為如此,因為 Python 沒有括號來幫助區隔不同的巢狀級別。
閱讀深度巢狀的程式碼容易讓人煩躁,因為你必須理清哪些條件屬於哪一級。因此,我們應儘可能減少巢狀,如果兩個條件可以用 and 合在一起,會比巢狀更易讀。
合併之前:
if a: if b: return c
合併後:
if a and b: return c
2. 將重複的程式碼移到條件語句之外
我們應該始終尋找移除重複程式碼的方法。這是提升程式碼能力的好辦法。
有時,在條件的兩個分支上出現重複程式碼,這意味這段程式碼將始終執行。因此這段重複的程式碼可以從條件中移出,放在條件之外執行。
if sold > DISCOUNT_AMOUNT: total = sold * DISCOUNT_PRICE label = f'Total: {total}'else: total = sold * PRICE label = f'Total: {total}'
透過將對label變數賦值移到到條件之外,我們刪除了重複的程式碼行,並明確了條件實際控制的內容,就是計算total。
if sold > DISCOUNT_AMOUNT: total = sold * DISCOUNT_PRICEelse: total = sold * PRICElabel = f'Total: {total}'
3. 將內部迴圈中的yield替換為yield from
經常忽略的一個小竅門是 Python 的yield關鍵字有對應的為collections準備的yield from。因此無需使用 for 迴圈遍歷集合。這使程式碼變短,並刪除 for 中的額外變數。而且消除 for 迴圈後,yield from使程式執行效率提高約 15%。
重構前:
def get_content(entry): for block in entry.get_blocks(): yield block
重構後:
def get_content(entry): yield from entry.get_blocks()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69997824/viewspace-2767437/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 6 個例子教你重構 Python 程式碼Python
- 一個利用正規表示式進行程式碼重構,去除冗餘程式碼的例子行程
- 優化重構Python程式碼6個小建議優化Python
- 程式碼重構:類重構的 8 個小技巧
- 程式碼重構:函式重構的 7 個小技巧函式
- 程式碼重構--大話重構
- 程式碼重構
- 重構程式碼的7個階段
- 程式碼重構之法——方法重構分析
- 使用JavaScript Function.prototype進行程式碼重構的一些例子JavaScriptFunction行程
- “硬核”程式碼重構
- 重構 PHP 程式碼PHP
- PHP程式碼重構PHP
- 程式碼重構(四)
- 我的第一個python web開發框架(33)——介面程式碼重構PythonWeb框架
- 簡單的3步,重構我們的程式碼
- 程式碼重構技巧(二)
- 談談程式碼重構
- 【讀程式碼重構有感】
- 重構:程式碼異味
- 30個python教你學會優雅的寫程式碼Python
- .NET重構—單元測試的程式碼重構
- Lambda和清潔程式碼的一個重構案例 - frankel
- 一個菜鳥在程式碼重構中的感想
- 10 個例子教你學會 ncat (nc) 命令
- 程式碼重構那些事兒
- 重構你的javascript程式碼JavaScript
- 重構 - 程式碼優化技巧優化
- 日記9(程式碼重構)
- 重構 - 程式碼整潔之道
- 重構之提煉程式碼
- 重構遺留程式碼(3):複雜的條件語句
- 重構改善既有的程式碼設計(重構原則)
- 30個php操作redis常用方法程式碼例子PHPRedis
- 程式碼重構與單元測試——“提取方法”重構(三)
- 重構程式碼(應如寫詩)
- 程式碼的壞味道和重構
- 記一次程式碼重構