首頁  >  文章  >  後端開發  >  Python 語言的自動格式化工具

Python 語言的自動格式化工具

WBOY
WBOY轉載
2023-04-13 09:16:122458瀏覽

每種程式語言都有自己專屬的格式化工具,像是golang 語言的gofmt,JavaScript 語言的prettier,php 語言的php-cs-fixer,和這些程式語言類似,python 也有自己的自動化格式工具,不過不同的是,它有很多個格式化工具,接下來我們就來看看這些不同的格式化工具到底有什麼不同。

autopep8

這個是最早的 python 格式化程式碼工具,它採用 pycodestyle 來分析程式碼,然後對於不符合 pep 風格的程式碼進行修復。同時,它也會修復一些已經被棄用的程式碼,並且規範程式碼的結尾,對於一些方法和函數添加一些空白行分隔符號。

autopep8 是支援透過設定檔進行格式化聲明的,它支援。 cfg,.ini  .pep8 .flake8 等格式的設定檔。目前他在 github 上有 4200 多個讚。

yapf

這是一個Google推出的格式化工具,因為有大廠背書,所以它發展的很快,目前在 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 )
return37+-+a[42-x :y**3]

上面雜亂無章的程式碼經過yapf格式化後,就會變得很規則,更加容易閱讀。

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 多。

Python 語言的自動格式化工具

black 號稱毫不妥協的程式碼格式化工具。也就是說,它預設不准你也不需要你手動進行程式碼格式的細節調整。

Python 語言的自動格式化工具

它具有非常有效率的速度,並且被許多專案所採用。

Python 語言的自動格式化工具

Black 擁有全面的測試套件,具有高效的平行功能測試,

以下是使用black 的一些組織:Facebook,Dropbox,KeepTruckin,Mozilla ,Quora, Duolingo,QuantumBlack,Tesla,Archer Aviation。

你可以看到,非常多的著名公司使用它來格式化 python 程式碼,只因為它太好用了,太方便了。

總結

autopep8 幾乎已經被放棄了,這從github 上的讚數就可以看出來,yapf 具有更加靈活的,高度定制化的格式化方案,而black 則讓程式看起來更統一和優雅,並且可以避免複雜的配置。

Python 語言的自動格式化工具

如果你公司或你正在使用python 進行專案的開發,那麼選擇一個程式碼格式化工具是非常必要的,它可以讓你的開發團隊節省大量時間。而且無論是你的個人代碼還是其他人的代碼格式看起來都是一樣的,這樣每個人閱讀其他人的代碼都會是一件幸福的事情。

以上是Python 語言的自動格式化工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除