每種程式語言都有自己專屬的格式化工具,像是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 多。
black 號稱毫不妥協的程式碼格式化工具。也就是說,它預設不准你也不需要你手動進行程式碼格式的細節調整。
它具有非常有效率的速度,並且被許多專案所採用。
Black 擁有全面的測試套件,具有高效的平行功能測試,
以下是使用black 的一些組織:Facebook,Dropbox,KeepTruckin,Mozilla ,Quora, Duolingo,QuantumBlack,Tesla,Archer Aviation。
你可以看到,非常多的著名公司使用它來格式化 python 程式碼,只因為它太好用了,太方便了。
總結
autopep8 幾乎已經被放棄了,這從github 上的讚數就可以看出來,yapf 具有更加靈活的,高度定制化的格式化方案,而black 則讓程式看起來更統一和優雅,並且可以避免複雜的配置。
如果你公司或你正在使用python 進行專案的開發,那麼選擇一個程式碼格式化工具是非常必要的,它可以讓你的開發團隊節省大量時間。而且無論是你的個人代碼還是其他人的代碼格式看起來都是一樣的,這樣每個人閱讀其他人的代碼都會是一件幸福的事情。
以上是Python 語言的自動格式化工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Python在遊戲和GUI開發中表現出色。 1)遊戲開發使用Pygame,提供繪圖、音頻等功能,適合創建2D遊戲。 2)GUI開發可選擇Tkinter或PyQt,Tkinter簡單易用,PyQt功能豐富,適合專業開發。

Python适合数据科学、Web开发和自动化任务,而C 适用于系统编程、游戏开发和嵌入式系统。Python以简洁和强大的生态系统著称,C 则以高性能和底层控制能力闻名。

2小時內可以學會Python的基本編程概念和技能。 1.學習變量和數據類型,2.掌握控制流(條件語句和循環),3.理解函數的定義和使用,4.通過簡單示例和代碼片段快速上手Python編程。

Python在web開發、數據科學、機器學習、自動化和腳本編寫等領域有廣泛應用。 1)在web開發中,Django和Flask框架簡化了開發過程。 2)數據科學和機器學習領域,NumPy、Pandas、Scikit-learn和TensorFlow庫提供了強大支持。 3)自動化和腳本編寫方面,Python適用於自動化測試和系統管理等任務。

兩小時內可以學到Python的基礎知識。 1.學習變量和數據類型,2.掌握控制結構如if語句和循環,3.了解函數的定義和使用。這些將幫助你開始編寫簡單的Python程序。

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Python3.6環境下加載Pickle文件報錯:ModuleNotFoundError:Nomodulenamed...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具