10 個 推薦的 Python 程式碼習慣

進擊の戴戴發表於2020-03-17

日常工作需要寫很多指令碼和小專案,分享一些經驗和程式碼習慣,比較主觀,有愛自取,求同存異。

  1. 使用 tqdm 包檢視處理進度,複雜情況可以考慮 fastprogress

  2. 引數過多,並且希望終端直接修改,推薦 YACS — Yet Another Configuration System

  3. 如果可配置引數比較多,使用容易錯誤,可以增加確認的過程

    enter = raw_input("confirm (y/n): ")
    if enter.lower() != 'y':
         exit()
  4. 無需前端知識,可以使用開源庫 streamlit 快速構建機器學習相關的 web debug 工具 Streamlit — The fastest way to build custom ML tools

    import streamlit as st
    st.write('Hello, world!')
  5. 如有可能,儘量格式化排版

  6. 小指令碼對檔案的處理可以通過 print 方式直接輸出,方便使用管道命令進一步處理

  7. 執行報錯時,直接對那段程式碼加一個異常捕捉 + IPDB 除錯,簡單高效

    try:
         do_something_with_xxxError()
    except xxxError:
         import ipdb; ipdb.set_trace()
  8. 不要重複造輪子,也要注意把自己常用的程式碼片段收集整理

    def split_chunks(data, n):
         if data is None:
             return None
         N = len(data)
         m = int(math.ceil(N / float(n)))
         res = [[] for i in range(n)]
         for i in range(n):
             res[i] = data[i*m: (i+1)*m]
         return res
  9. 多使用列表表示式,簡化常用程式碼。

    with open(path) as f:
         lines = [l.strip() for l in f.readlines()]
  10. 可以允許單檔案指令碼較長,但不允許單函式又臭又長,理清邏輯,劃分為多個函式方便修改。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章