新聞中心
每種編程語言都有自己專屬的格式化工具,比如 golang 語言的 gofmt,JavaScript 語言的 prettier,php 語言的 php-cs-fixer,和這些編程語言類似,python 也有自己的自動化格式工具,不過不同的是,它有很多個格式化工具,接下來我們就來看看這些不同的格式化工具究竟有什么不同。

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


咨詢
建站咨詢
