網頁

2019年3月16日 星期六

7種工具用來維護Pyhton code

PEP 8是Python代碼風格規範,它對行長度,縮進,多行表達式和命名約定等內容有明確的規範。你的團隊可能也有自己的代碼規則,可能與PEP 8略有不同。但是,任何代碼風格都是為了在代碼庫中強制實施一致的標準,使其更具可讀性,從而更易於維護。這裏有三個庫來幫助美化你的代碼。


1、 Pylint

Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格標準(Pylint 默認使用的代碼風格是 PEP 8)和有潛在問題的代碼。 。它與幾個流行的編輯器和IDE很好地集成,也可以從命令行運行。

要安裝,請運行 pip install pylint 。

要從命令行運行 Pylint,請運行 pylint [options] path/to/dir 或 pylint [options] path/to/module.py 。Pylint 會向控制臺輸出不符合代碼風格標準以及錯誤代碼的地方

你還可以調用 pylintrc 配置文件來自定義 Pylint 檢查的錯誤。(項目地址: https://www.pylint.org/ )

2、Flake8

Flake8是一個“Python工具,它將PEP8,Pyflakes(類似於Pylint),McCabe(代碼復雜性檢查器)和第三方插件集合在一起,以檢查某些Python代碼的風格和質量。”

要使用Flake8,要先運行 pip install flake8 。然後運行 flake8 [options] path/to/dir 或 flake8 [options] path/to/module.py 查看其錯誤和警告。

與Pylint一樣,Flake8允許對配置文件檢查的內容進行一些自定義。它有非常清晰的文檔,包括一些有用的Commit,可以作為開發工作流程的一部分自動檢查代碼。

Flake8能夠與流行的編輯器和IDE集成,但這些指令通常在文檔中並沒有說明。要將Flake8與你喜歡的編輯器或IDE集成,可以在線搜索插件(例如 Sublime Text的Flake8插件)。(項目地址: http://flake8.pycqa.org/en/latest/ )

3、Isort

isort 可自動對 Python的 import語句進行排序和分段。可將大量的 import結構轉成非常適合閱讀的排版。(例如,標準庫導入,第三方庫導入,從你自己的項目導入等),這樣可以提高可讀性,而且如果你導入的庫較多,還能快速找到各個庫

安裝 isort pip install isort ,然後運行 isort path/to/module.py 。文檔中提供了許多配置選項。例如,你可以配置 isort如何處理.isort.cfg文件來執行一個庫的多行導入。

與Flake8和Pylint一樣,isort還提供了將其與流行的編輯器和IDE集成的插件。(項目地址: https://github.com/timothycrosley/isort )

分享你的代碼風格

記住從命令行手動為每個文件運行linters是一件很痛苦的事情,你可能也不太喜歡通過運行 IDE 中某個插件來實現這個功能。另外,您的同事可能更喜歡別的方式,或者可能他們最喜歡的編輯器的沒有這個插件,或者你檢查代碼不夠細致,久而久之,你們共享的代碼庫將變得混亂並且難以閱讀。

一個很好的解決方案是使用一個庫,自動將代碼重新按照PEP 8規範進行格式化。我們推薦的三個庫都有不同的自定義級別來控制如何格式化代碼,像pylint的和Flake8,你要先測試,看看它是否存在你接受不了卻無法更改的默認配置。

4、 Autopep8

Autopep8可以自動格式化你指定的模塊中的代碼。它將重新縮進行,修復縮進,刪除無關的空白,並重構常見的比較錯誤(如布爾和None值)。你可以在它的文檔中查看完整的更改列表

安裝Autopep8,需要先運行 pip install --upgrade autopep8 。要重新格式化代碼,請運行 pip install --upgrade autopep8 。然後執行 autopep8 --in-place --aggressive --aggressive <filename> 就可以重新格式化你的代碼。該aggressive標誌(和它們的數量),表明autopep8對你的代碼風格有多少控制權。(項目地址: https://github.com/hhatto/autopep8 )

5、 Yapf

Yapf是重新格式化代碼的另一種選擇,它帶有自己的配置選項列表。它與autopep8的不同之處在於它不僅僅解決了違反PEP 8規範的問題。它還重新格式化了沒有違反PEP 8規範的代碼,但沒有一致地設置樣式,可能是為了可讀性而格式化得更好。

要安裝Yapf,需要運行 pip install yapf 。要重新格式化代碼,要運行 yapf [options] path/to/dir 或 yapf [options] path/to/module.py 。(項目地址: https://github.com/google/yapf )

6、 Black

在所有的代碼檢查工具中,Black算是比較新的一個。它與autopep8和Yapf類似,但限制比較多,它很少有自定義選項,這是重點,這意味著你無法自定義代碼風格。

Black支持Python 3.6+以上的版本,但可以格式化Python 2代碼。要使用Black,請運行 pip install black 。要美化您的代碼,請運行: black path/to/dir或black path/to/module.py 。(項目地址: https://github.com/ambv/black

檢查代碼的測試覆蓋率

假如你正在編寫測試,你需要確保對代碼庫提交的新代碼進行測試,並且不會降低代碼的測試覆蓋率。雖然測試覆蓋率的百分比不是衡量測試有效性和充分性的唯一指標,但它是確保項目中遵循基本測試標準的一種方法。為了測量測試覆蓋率,我們有一個建議:使用 Coverage 這個庫。

https://pypi.org/project/black/

7、Coverage

Coverage有多種向你報告測試覆蓋率的方式,包括將結果輸出到控制臺或HTML頁面,並提示哪些行號沒有覆蓋到。你可以設置配置文件以自定義Coverage檢查的內容並使其更便於運行。

要安裝Coverage,請運行 pip install coverage 。要運行程序並查看其輸出,請運行 coverage run [path/to/module.py] [args] ,接著你將看到程序的輸出。要查看哪些代碼行沒有被覆蓋,請運行 coverage report -m 。(項目地址: https://coverage.readthedocs.io/en/latest/ )

持續集成工具

持續集成(CI)是在合並和部署代碼之前,自動檢查代碼風格錯誤和測試最小覆蓋率的一系列過程。有許多免費或付費的工具可以自動化這個過程,本文這裏就不詳細介紹了。但是,由於設置CI過程是將代碼塊刪除為更易於閱讀和維護的重要步驟,因此,你不得不重視。

————————————————————————————————————
想了解更多前沿技術,想獲取最新免費編程資源視頻源碼筆記,小夥伴請往下看!

qun號是:八×××,六三四,八四五。qun內有很多開發工具,很多幹貨和技術資料分享!

如果您覺得此篇文章對您有幫助,歡迎關註微信公眾號:大禹編程,您的支持是對我最大的鼓勵!共同學習,共同進步:

這7大神器, 讓你的Python 代碼更易於維護

參考
https://www.itread01.com/content/1539950418.html

沒有留言:

張貼留言