Python 語言的自動格式化工具
每種程式語言都有自己專屬的格式化工具,像是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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

DebianSniffer是一個網絡嗅探工具,用於捕獲和分析網絡數據包時間戳(Timestamp):顯示數據包捕獲的時間,通常以秒為單位。源IP地址(SourceIP):發送數據包的設備的網絡地址。目標IP地址(DestinationIP):接收數據包的設備的網絡地址。源端口(SourcePort):發送數據包的設備使用的端口號。目標端口(Destinatio

本文介紹幾種檢查Debian系統OpenSSL配置的方法,助您快速掌握系統安全狀態。一、確認OpenSSL版本首先,驗證OpenSSL是否已安裝及版本信息。在終端輸入以下命令:opensslversion若未安裝,系統將提示錯誤。二、查看配置文件OpenSSL主配置文件通常位於/etc/ssl/openssl.cnf。您可以使用文本編輯器(例如nano)查看:sudonano/etc/ssl/openssl.cnf此文件包含密鑰、證書路徑及加密算法等重要配置信息。三、利用ope

提升DebianTomcat日誌安全性,需關注以下關鍵策略:一、權限控制與文件管理:日誌文件權限:默認日誌文件權限(640)限制了訪問,建議修改catalina.sh腳本中的UMASK值(例如,從0027改為0022),或在log4j2配置文件中直接設置filePermissions,以確保合適的讀寫權限。日誌文件位置:Tomcat日誌通常位於/opt/tomcat/logs(或類似路徑),需定期檢查該目錄的權限設置。二、日誌輪轉與格式:日誌輪轉:配置server.xml

本文將闡述如何通過分析Debian系統下的Apache日誌來提升網站性能。一、日誌分析基礎Apache日誌記錄了所有HTTP請求的詳細信息,包括IP地址、時間戳、請求URL、HTTP方法和響應代碼等。在Debian系統中,這些日誌通常位於/var/log/apache2/access.log和/var/log/apache2/error.log目錄下。理解日誌結構是有效分析的第一步。二、日誌分析工具您可以使用多種工具分析Apache日誌:命令行工具:grep、awk、sed等命令行工具可

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

本文探討網絡分析工具Wireshark及其在Debian系統中的替代方案。需要明確的是,不存在名為“DebianSniffer”的標準網絡分析工具。 Wireshark是業界領先的網絡協議分析器,而Debian系統則提供其他功能類似的工具。功能特性對比Wireshark:這是一款功能強大的網絡協議分析器,支持實時網絡數據捕獲和深入的數據包內容查看,並提供豐富的協議支持、過濾和搜索功能,便於網絡問題的診斷。 Debian系統中的替代工具:Debian系統包含諸如tcpdump和tshark等網

本文介紹如何在Debian系統上自定義Apache的日誌格式。以下步驟將指導您完成配置過程:第一步:訪問Apache配置文件Debian系統的Apache主配置文件通常位於/etc/apache2/apache2.conf或/etc/apache2/httpd.conf。使用以下命令以root權限打開配置文件:sudonano/etc/apache2/apache2.conf或sudonano/etc/apache2/httpd.conf第二步:定義自定義日誌格式找到或

Tomcat日誌是診斷內存洩漏問題的關鍵。通過分析Tomcat日誌,您可以深入了解內存使用情況和垃圾回收(GC)行為,從而有效定位和解決內存洩漏。以下是如何利用Tomcat日誌排查內存洩漏:1.GC日誌分析首先,啟用詳細的GC日誌記錄。在Tomcat啟動參數中添加以下JVM選項:-XX: PrintGCDetails-XX: PrintGCDateStamps-Xloggc:gc.log這些參數會生成詳細的GC日誌(gc.log),包含GC類型、回收對像大小和時間等信息。分析gc.log
