記錄一下我自己的 Python Coding Style,最近都照專案原本的 Coding Style 在寫,還是記錄一下,免得忘了自己 Style。
Coding Style(圖片來源:Python 是用縮排來表示區塊的語言,所以最好保持縮排的一致,不然很容易出問題…。尤其是跟 Windows 的開發者 co-work 的時候,這個狀況更明顯,為了避免無謂的 diff
,依照 code style 建議改用 4 個空格取代 Tab,這個可以直接在 IDE 設定,把 Tab 的輸出換成 4 個空格即可。
guideline 建議 79,只是我通常取整數設 80 。另外,如果有遇到縮排縮太深,導致字串超過螢幕,必須捲動下方捲才能閱讀的,我會直接換行,不過通常 IDE 會幫你把前面的空格一併記入字數計算
…是說如果縮排縮太深,應該要考慮重構了。
當變數名稱太長或是參數太多,導致需要換行的時候,如果有第一個參數,對齊第一個參數;如果沒有,就縮排一次。
如果是遇到計算式需要換行,則在運算子之前換行
最外層的函數或類別,兩兩之間用兩行隔開,類別內部的方法則用單行進行區隔。不過這我老是忘記,都會用自動排版幫忙校正。
一行一個 Import 模組,除非是用 Wildcard imports 才會把從同一個模組 imports 出來的東西寫在同一行。
另外 guideline 建議 import 要分群,每群之間使一行空白分隔,分群規則則按照:
不過我通常第一跟第二項都混成一群了…
在 python 中,字串單引號與雙引號都可以,但我偏愛先雙引號再單引號。
與分隔符號及表達式間不用空白。
參數名稱與值之間也不用留白。
不過我發現,如果有指定參數型態的話,IDE 又會建議加上空白 @@
但我會在低優先權的運算子兩邊加上空白。
modules_name
CONSTANT_NAME
ClassName
_foo
:
類似 C/C++ 系列的 protected。無法被直接 import ,也不應該直接呼叫函數存取變數或存取變數,這邊 Python 沒禁止,但還是建議將它視為 protected 變數,不要在外部呼叫。最後與 protected 變數相同可以被子類別繼承。
雖說是無法被 import ,但若是硬要 import 也不是做不到
__foo__
:
不要用!這是留給 Python builtin 專用的,用了小心哪天升級了後會爆炸
__foo
:
這對應到的是 private 變數。只允許類別本身呼叫,無法被外部成員或是子類別直接操作與呼叫。
我慣用的 IDE 有兩個,分別是 Intellij IDEA 與 vscode。
如果在 Intellij IDEA 我通常會依賴內建自動排版來挑整一些縮排,並提供一些提示;但若在 vscode 我則是會額外安裝 Pylint 來輔助。
本文作者: 辛西亞.Cynthia
本文連結: 辛西亞的技能樹 / hackmd 版本
版權聲明: 部落格中所有文章,均採用 姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!