前言
大家都懂自動格式化代碼的好處缤弦。
不需要再對著pep8標(biāo)準(zhǔn)扣字眼來修改自己代碼
減少了組內(nèi)不必要的討論,專注于項目功能
代碼風(fēng)格更統(tǒng)一彻磁,github上傳代碼沖突更少
幫助多人開發(fā)協(xié)調(diào)代碼規(guī)范
因此大多數(shù)公司招聘python開發(fā)人員時將了解pep8規(guī)范和懂得使用自動格式化工具列入必備技能碍沐。
autopep8 vs yapf vs black
以下列舉了python中的三個自動格式化工具:
star 數(shù)截止 2020/8/28
autopep8 - github
star 3.5k
autopep8 是一個國人中知名度最高和使用最廣泛的自動格式化工具。 一個較為寬松的格式化工具衷蜓,只會以最低限度的標(biāo)準(zhǔn)對不符合 pep8 標(biāo)準(zhǔn)的代碼進(jìn)行修正累提。可能無法滿足那些有特定需求磁浇,或想讓代碼看起來更干凈更漂亮的人斋陪。
yapf - github
star 11k
由 google 開發(fā)并維護(hù)的格式化工具,特點(diǎn)是支持多種格式化風(fēng)格置吓。默認(rèn)支持三種格式化樣式:pep8, google, Facebook 和 chromium无虚。 yapf的初衷不是讓代碼符合pep準(zhǔn)則, 而且讓代碼看起來更整潔更友好衍锚。
black - github
star 17.6k
可以說是最流行最多人使用的python格式化工具了友题,統(tǒng)一的格式化標(biāo)準(zhǔn)。傻瓜化的使用方式戴质,極少的定制化選項(沒錯度宦,開發(fā)者包括使用 black 的人都認(rèn)為這是個優(yōu)勢)。
默認(rèn)的 black 是將字符串格式化成用雙引號包含且不支持自定義告匠,在連續(xù)的用戶抗議和開發(fā)組成員“吵”了近百樓戈抄,各種丟數(shù)據(jù)各種引經(jīng)據(jù)典后,開發(fā)組成員才勉為其難給出了個不格式化字符串引號的選項后专。
總結(jié):
autopep8 是剛開始學(xué)習(xí) python 的人都被推薦的一個格式化工具呛凶,不幸的是它已經(jīng)不適合當(dāng)下了。較低的維護(hù)頻率行贪,較低的社區(qū)活躍度漾稀,一大堆 issuse 未解決。都是我們放棄它的理由建瘫。
yapf 包含著 google 文化中的工程師極客精神崭捍,支持自定義配置是他的優(yōu)點(diǎn)。如果你對自己的代碼風(fēng)格有硬性的要求啰脚,yapf 將是你不二的選擇殷蛇。
black 秉承的是 "less is more" 的設(shè)計標(biāo)準(zhǔn)实夹,開發(fā)組人員負(fù)責(zé)調(diào)研哪種格式化風(fēng)格更適合pythonista的開發(fā)。允許我們自定義的余地較小粒梦,但對于我們來說亮航,有人替我們考慮了哪種方式更好,躺平享受成果不失為一種最好的選擇匀们。
對于我們團(tuán)隊來說 black 是我們的選擇缴淋。 如果你也跟我們有一樣的選擇,那請往下繼續(xù)閱讀泄朴。
1.pip3.6 install black
2.選擇Preference--->Tools--->External Tools 進(jìn)入到以下這個頁面(可能pycharm版本不同重抖,有細(xì)小差別)
一般你只需要配置下Program和parmeters,
Program的環(huán)境配置:$PyInterpreterDirectory$/python
Paraments的配置:-m black $FilePath$
directory: $ProjectFileDir$
3.配置好后祖灰,在代碼區(qū)域按鼠標(biāo)右鍵钟沛,選擇External Tools中的black。就可以啦局扶。
autopep8恨统,在python2版本上好用,但是autopep8本身在github上已經(jīng)很久沒人維護(hù)了三妈,black在python3上好用畜埋,有人維護(hù),但不支持python2
有用請點(diǎn)贊哦沈跨,你的贊同是我更新的動力~
祝你學(xué)業(yè)有成~