掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
每種編程語言都有自己專屬的格式化工具,比如 golang 語言的 gofmt,JavaScript 語言的 prettier,php 語言的 php-cs-fixer,和這些編程語言類似,python 也有自己的自動(dòng)化格式工具,不過不同的是,它有很多個(gè)格式化工具,接下來我們就來看看這些不同的格式化工具究竟有什么不同。

目前成都創(chuàng)新互聯(lián)公司已為近千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、湖南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
這個(gè)是最早的 python 格式化代碼工具,它采用 pycodestyle 來分析代碼,然后對(duì)于不符合 pep 風(fēng)格的代碼進(jìn)行修復(fù)。同時(shí),它還會(huì)修復(fù)一些已經(jīng)棄用的代碼,并且規(guī)范代碼的結(jié)尾,對(duì)于一些方法和函數(shù)添加一些空行分隔符。
autopep8 是支持通過配置文件進(jìn)行格式化聲明的,它支持。cfg,.ini .pep8 .flake8 等格式的配置文件。目前他在 github 上有 4200 多個(gè)點(diǎn)贊。
這是一個(gè)谷歌推出的格式化工具,因?yàn)橛写髲S背書,所以它發(fā)展的很快,目前在 github 上有 13000 個(gè)點(diǎn)贊。他不會(huì)檢查 pep 準(zhǔn)則,它只會(huì)格式化代碼。它采取的是類似于??clang-format??的思想,就是讀取整個(gè)文件代碼,然后格式化成最佳的格式。
它是一個(gè)可配置的代碼格式方案,不同的配置會(huì)導(dǎo)致不同的格式化結(jié)果,目前主流的配置有 pep8,google,facebook,chromium 等。此外,它還支持自定義配置方案,通過??--style??即可指定格式樣式。
x = { 'a':37,'b':42,
'c':927}
y = 'hello ''world'
z = 'hello '+'world'
a = 'hello {}'.format('world')
class foo ( object ):
def f (self ):
return 37*-+2
def g(self, x,y=42):
return y
def f ( a )
return 37+-+a[42-x : y**3]上面雜亂無章的代碼經(jīng)過??yapf??格式化后,就會(huì)變得很規(guī)整,更加容易閱讀。
x = {'a': 37, 'b': 42, 'c': 927}
y = 'hello ' 'world'
z = 'hello ' + 'world'
a = 'hello {}'.format('world')
class foo(object):
def f(self):
return 37 * -+2
def g(self, x, y=42):
return y
def f(a):
return 37 + -+a[42 - x:y**3]
black 是最近幾年新推出的 python 代碼格式化工具,雖然是最新推出的,然而它卻是最受歡迎的,目前它在 github 上的點(diǎn)贊是 30000 多。
black 號(hào)稱毫不妥協(xié)的代碼格式化工具。也就是說,它默認(rèn)不許你也不需要你手動(dòng)進(jìn)行代碼格式的細(xì)節(jié)調(diào)整。
它具有非常高效的速度,并且被很多項(xiàng)目所采用。
Black 擁有全面的測試套件,具有高效的并行功能測試,
下面是使用 black 的一些組織:Facebook,Dropbox,KeepTruckin,Mozilla,Quora, Duolingo,QuantumBlack,Tesla,Archer Aviation。
你可以看到,非常多的著名公司使用它來格式化 python 代碼,只因?yàn)樗糜昧?,太方便了?/p>
autopep8 幾乎已經(jīng)被放棄了,這從 github 上的點(diǎn)贊數(shù)就可以看出來,yapf 具有更加靈活的,高度定制化的格式化方案,而 black 則讓程序看起來更加統(tǒng)一和優(yōu)雅,并且可以避免復(fù)雜的配置。
如果你公司或者你正在使用 python 進(jìn)行項(xiàng)目的開發(fā),那么選擇一款代碼格式化工具是非常必要的,它可以讓你的開發(fā)團(tuán)隊(duì)節(jié)省大量時(shí)間。而且無論是你的個(gè)人代碼還是其他人的代碼格式看起來都是一樣的,這樣每個(gè)人閱讀其他人的代碼都會(huì)是一件幸福的事情。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流