Python Formatter

Jeremy Pai
Life’s a Struggle
4 min readApr 26, 2024
Photo by Luca Bravo on Unsplash

各個程式語言都有發展出自己的 format 工具幫助我們排版,省去手動慢慢排的時間。以 Python 來說,在 vscode 我們能夠使用 autopep8、yarp 與 black。

開始大量寫程式後,經常碰到因為每個人的程式寫作風格相異導致讀程式沒那麼流暢的問題 (coding style 的不同)。

autopep8 (GitHub: 4.5k)

此 format 工具是遵循 PEP8 去做排版,最早是由 Python 之父 Guido van Rossum 自己所遵循的 coding style,後來才慢慢演變成 PEP8。不過也因為時間的推移,PEP8 已經不再更新,使得 autopep8 已經不符合現在的需求。

yapf (GitHub: 13.7k)

yapf 是 Google 團隊開發出來的 format 工具,或許也繼承了 Google 的風格使得 yapf 保有很多的設定空間。與 autopep8 不同,開發中有借鏡 clang format。

black (GitHub: 37.4k)

black 可以說是目前最多人選擇的 Python format 工具,從 GitHub 的 star 人數可見一班。不過使用此工具也代表放棄自行調教 coding style,全部都交給 black。在這樣的情況下,black 還擁有著這麼高的擁護者也代表著這其實算是個優點吧~ (我就懶

於 vscode 配置 black (vscode 要記得安裝 Python extension)

首先先安裝 black,指令如下所示

$ pip install black

接著打開 Settings,在 Search settings 輸入 python formatting provider,選擇 black。

[註記]:User 是直接針對使用者做設定,也就是全域的設定,這次設定完後會直接套用到所有的 projects 當中。而 Workspace 則只針對當下的 project 做設定。當兩個都有設定時會以 Workspace 為優先。

之後只要您想要對 Python code 做排版時,只需要鍵盤輸入 CTRL+SHIFT+P,在 command palette 輸入 Format Document 就可以自動排版了。

也可以打開剛剛 Settings 頁面,在 Search settings 輸入 format on,就會出現以下三種自動排版的設定,分別是 Format On Paste、Format On Save 與 Format On Type。可以選擇您想要自動排版的時間點。

能夠自動排版符合統一標準的 coding style 真的很棒,光是不用自動排就能節省很多時間去做其他的開發,也能夠統一團隊內部的 coding style,希望您也會愛上這個工具~

--

--

Jeremy Pai
Life’s a Struggle

機器視覺演算法工程師~不限主題隨心寫下自己想寫的事物